主题:
字号:
16
行距:
2.0

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

buteErrorase:

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['价格'].str.replace('¥','').astype(float)

#评价数清洗(简化处理,将“万+”乘以10000)

defclean_commit(x):

if'万'instr(x):

returnfloat(str(x).replace('万+','').repla

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

武道天帝
蒙面加菲猫
被夺骨挖心后,我成了万古神帝
枯崖雨墓
兽世重生:病弱王女在修罗场里遛疯狗
柒月青柠
我的绝世表嫂
严大妮儿
全民穿越!我在末日世界养城兽
三水华光
觉醒天赋:斩杀
香瓜超甜
玉佩通两界,儿童特战小队
红气养人
原神:从获得柱间模板开始
束负九日
九叔:开局重瞳,把师父练成僵尸
老李要吃肉
莫慌退至老祖身后
颓废的火把
自律就变帅!高冷校花绷不住了!
单身狗协会副会长
宝可梦:凭什么你的梦妖叫振翼发
麻辣巴子
随便摆个摊,咋就成大佬了?
佚名
斗罗:我的日记让唐三众叛亲离
无尽仙缘
林凡杨雪
林平之
非正常女天师
吞鬼的女孩
科技帝国从穿越三体开始
西门要吹雪
从寒微杂役到万世帝尊
多情石榴
重生归来,真千金团灭户口本
绵绵心
最佳女婿林凡杨雪
林平之
退婚后我成了陆太太,前男友疯了
古辰桃瑶
让你当纨绔,你用帝王术混官场
牛奶布丁基本可乐
强势掉马!废材大师兄竟是万人迷
辰陌reborn
穿越情满四合院,我早到了18年
小河中的一条鱼
七零知青太娇软,乡下糙汉脸红了
君乾
自缚禁地五百年,我当散修你哭啥
萝卜味薄荷糖
错爱三年,聿太太不想再装乖了
狸白梨
综:白月光她媚色撩人
妤画
末日入侵:从无限列车开始求生
小橘兔
穿成极品扶弟魔,我直接断亲
狸花小猫
F4里最病弱的那个,被团宠了
星河朗月
恶女又怎样,男主偏偏宠她入骨
fd漠城
进化六亿年,从三叶虫到神话始祖
日积月累
知否:我是徐家子
马空行
重生官场从阶下囚到封疆大吏
笔下不生灰
大夏镇夜司
庞飞烟
求生游戏:请叫我诚信商人
一只福富
穿越民国,获得每日签到系统
多多蛋挞
慕浅浅,要不要和我结个婚
走失的青鸟
炮灰奶娘入府,被大佬们抢疯了
偷心的西红柿
重启人生从带娃开始称霸
黄昏后的精彩
重回1982小渔村
米饭的米
公若不弃,愿拜为义父
辣酱热干面
第四天灾从不相信钢铁洪流!
喀秋莎第一可爱
修仙界只有妖女了是吗
月下千早
四合院之扮猪吃老虎
戈壁孤狼夜
青山
会说话的肘子
仙命在我
杜养吾
半岛头号玩咖!
HKDoll
被夺一切后我成了仙道魁首
盛唐无夜