京东是动态页面,之前尝试用selenium获取,没有成功。看了网上其他实例用接口获取评论,尝试后成功了。
一、找接口
右击网页,打开检查元素,点击网络,刷新一下页面,找到这一条
在这里插入图片描述复制上图红笔圈出的网址,打开,可以看到里面是评论
在这里插入图片描述接着打开第二页评论,发现规律
在这里插入图片描述二、写代码


```python
import time
import requests
import json
import csv

def getcome (url):
    rep = requests.get(url,headers=header)
    rep.encoding = 'GBK'
    html = rep.text
     #去掉首尾无关字符
    jd = json.loads(html.lstrip('fetchJSON_comment98(').rstrip(');'))
    for co in jd['comments']:
        come = co['content']
        times = co['creationTime']
        types = co.setdefault('productColor','')#如果找不到购买类别,就为空
        csv_writer.writerow([times,types,come])

f = open('D:/JDcomments.csv','w',encoding='utf-8')
csv_writer = csv.writer(f)
csv_writer.writerow(["时间","类别","评论"])
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0',
        'Referer':"https://item.jd.com/100011516076.html"}
url1='https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100011516076&score=0&sortType=5&page='
url2='&pageSize=10&isShadowSku=0&rid=0&fold=1'
for i in range(0,51):
    url=url1+str(i)+url2
    time.sleep(5)
    print(i)#当前页数
    getcome(url)
f.close()

#结果被存入csv中,用excel打开前需要先用记事本打开另存一下,再用excel打开,避免中文乱码

``
三、总结
只爬了一个商品的评论,还需要继续探索。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐