主题:
字号:
16
行距:
2.0

第77章 爬虫抓取的第一份数据:教辅价格[3 / 6]

tem.find('div',class_='p-commit')else'0'

books.append([title,price,shop,commit])

exceptAttributeErrorase:

print(f"解析错误:{e},跳过此项")

continue

df=pd.DataFrame(books,columns=['书名','价格','店铺','评价数'])

df.to_csv('jd_math_books_page1.csv',index=False,encoding='utf-8-sig')

短短几十行代码,他调试了大半天。问题层出不穷:标签class名不准确、某些商品信息缺失导致find返回None进而引发AttributeError、价格符号和评价文本中夹杂着“¥”、“+”等需要清洗的字符、以及最棘手的——京东的部分商品信息是通过JavaScript动态加载的,直接请求HTML页面获取不到。他不得不学习使用requests抓取实际的接口数据(通过开发者工具查看Network中的XHR请求),这比解析静态HTML复杂得多。

第四、五天:优化、多页抓取与当当网适配。

解决动态加载问题后,他增加了循环,尝试抓取前5页数据(约100条)。他加入了time.sleep(random.uniform(1,3))在每次请求之间随机休眠1-3秒,避免访问过快触发反爬。数据存储也从单页覆盖改为追加模式。

接着,他用类似的方法分析当当网的结构,编写了适配的爬虫脚本。当当的反爬似乎弱一些,但页面结构也略有不同,需要调整选择器。

第六天:数据清洗与初步分析。

他成功抓取了京东156条、当当189条有效数据。但原始数据很“脏”:价格是字符串“¥39.80”,需要提取数字;评价数可能是“2万+”,需要转换为近似数值(如20000);店铺名有冗余信息。他用pandas进行了清洗:

#价格清洗

df['价格']=df['价格'

本章未完,请点击下一页继续阅读!

天牢开局:从死囚到儒道文圣
清风摇翠
领证三天,我被未婚妻杀死
衣冠南渡0
海上求生?我带美女享受人生
夏日冰瓜
小可怜闪婚带娃大叔,三年后成首富
二月里里
穷鬼奇袭豪门,女配手撕霸总文!
勾锥大王
狼牙:我和史大凡是发小
爱吃梅汁酱的冰凰神宗
大唐神探:罪业系统
大雪等不来
愚孝惨死后,分家单过逆袭做富翁
言宝
开局被绿,送上强力胶后穿越了
凡年若瞳
退婚回村种花炸出顶级红三代老公
多多嚷嚷
当摆烂金丝雀,嫁给了高冷保镖
海盈
全民饥荒:从养蜂人到虫群主宰
蒋涅嘉
半山村乡野神医
叮叮咚咚小別物
乡村傻驴驴驴驴驴驴驴驴
一曲秋水
全民求生:我在诡异末日养成少女
我吃西红柿酱
全球玩家苦练武,就我一人在修仙
梦溪凤
原神:俺十四境开局被荧妹钓起?
一只肥沧源
任务流神豪
幼儿园高手
重回1982小渔村
米饭的米
公若不弃,愿拜为义父
辣酱热干面
第四天灾从不相信钢铁洪流!
喀秋莎第一可爱
修仙界只有妖女了是吗
月下千早
四合院之扮猪吃老虎
戈壁孤狼夜
青山
会说话的肘子
北海道赛马物语
点旗2009
半岛小行星
鸡兔同笼
仙命在我
杜养吾
半岛头号玩咖!
HKDoll
被夺一切后我成了仙道魁首
盛唐无夜
重生鉴宝:我真没想当专家
眀智
华娱从洪世贤开始
在下励志师
风起北美1625
一贱下天山
工业克苏鲁,从海岛领主开始
刀如故
娱乐:我就是顶峰
疑似风月
以一龙之力打倒整个世界!
唐宋元明氢
美警生存实录:以德服人
夜叶总差
循规蹈矩能叫重生吗?
法学院新生
苟在武道世界成圣
在水中的纸老虎
我以奥术登临神座
危楼听雨
全球觉醒:开局加入聊天群
飞翔的四眼
大明:从战场捡属性开创诸天大明
无谅888
税收只在机枪射程内!
践行践远
道君,从蓬莱筑基开始
临渊今天一定更
诸天影视从四合院开始
洒家要吃肉
魔王大人深不可测
晨星LL
穿越,然后被富家JK堵门
晚不鸽
人在斗破:天赋绝世竟带系统
仪昔
超武斗东京
木隐红尘
诸天:谁把他放进恐怖片的?
三维的乱象
F1:车神养成日记
诸位贱笑了