利用爬虫爬取京东商品的评论信息
在之前利用爬虫爬取网页的时候只是用到了html解析,但要获得大量的评论内容时,只从html页面解析并不能满足要求,那么只能直接获取相关数据
进入京东商品界面,F12打开开发人员工具,打开network
刷新页面,会发现大量内容出现
点击评论,查看评论信息,开发人员工具也会随着增加内容,新增加的内容会在工具中的时间轴动态的出现
可以如上图在时间轴上划定范围,减少要查看的内容。
记下来查看内容,选择符合要求的如
内容的url地址是有一定的规律的:如上面内容的地址
https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=10337898566&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1
其中score表示用户评论的分类,0是全部分类,1是差评分类;page代表内容的页数,等同于页面上的一页评论。page最多为99,因为京东页面前端最多提供100页的评论,爬虫能爬取大量的内容是通过修改该参数进行的
接下来就是用爬虫对内容进行相关的爬取和解析了
from bs4 import BeautifulSoup
import requests
Headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
}
def getData(page):
#内容url
url='https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100014352539&score=1&sortType=5&page='+str(page)+'&pageSize=10&isShadowSku=0&fold=1'
response=requests.get(url=url,headers=Headers,timeout=10)
soup=BeautifulSoup(response.text,'lxml')
#对获得的页面字符进行处理,并转成字典
context=eval(soup.find("p").text.replace("fetchJSON_comment98(","").replace(");","").replace("null","None").replace("false","False").replace("true","True"))
print(type(context))
print(context)
if __name__=='__main__':
for i in range(0,100):
getData(i)
n=random.randint(1,5)
time.sleep(n)
代码中有将程序循环延时1-5秒的操作是因为京东的反爬,没有时间延时的话很快就会被封
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)