python爬取商品案例(如何爬取京东商品评论并进行数据存储)
python爬取商品案例(如何爬取京东商品评论并进行数据存储)找到这样的关系之后,代码实现。productId:商品idpage:第几页pageSize:每页多少条
1、首先我们进入商品详情页,打开开发者模式network,点击评论
这里面会有很多内容,评论内容也包含在其中,找到这个 productPageComments
完整的链接:https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100012032157&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1
解释一下:
productId:商品id
page:第几页
pageSize:每页多少条
找到这样的关系之后,代码实现。
import urllib.request
import json
import time
# ======》爬取评论信息《=======#
end_page = int(input('请输入爬取的结束页码:'))
for i in range(0 end_page 1):
print('第%s页开始爬取------' % (i 1))
url = 'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100004770259&score=0&sortType=5&page={}&pageSize=10&isShadowSku=0&fold=1 '
url = url.format(i)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/76.0.3809.100 Safari/537.36'
'Referer': 'https://item.jd.com/100004770259.html'
}
request = urllib.request.Request(url=url headers=headers)
content = urllib.request.urlopen(request).read().decode('gbk')
content = content.strip('fetchJSON_comment98vv385();')
obj = json.loads(content)
comments = obj['comments']
fp = open('京东.txt' 'a' encoding='utf8')
for comment in comments:
# 评论时间
creationTime = comment['creationTime']
# 评论人
nickname = comment['nickname']
# 评论内容
contents = comment['content']
item = {
'评论时间': creationTime
'用户': nickname
'评论内容': contents
}
string = str(item)
fp.write(string '\n')
print('第%s页完成----------' % (i 1))
time.sleep(4)
fp.close()