前言
最近做了一个京东手机数据分析,从JD爬了一些手机的数据,这里简单介绍一下爬取手机评论的部分。
一、准备信息
首先我们准备的数据有:
-
已知手机的id,可以根据京东上一款手机的网址查询得到。
-
评论所在的url:
利用google chrome打开网站,右键“检查”,找到Network选项,然后刷新页面,点击商品评价,等待服务器向页面传递参数。
找到productPageComments点击,就会在右边Header中找到评论网址。
同时在header中也有cookie参数,将cookie参数复制到下面的代码相应位置。
将上述参数准备好后,可以运行下面代码
- 手机id
- 评论url网址
- cookie
二、详细代码
#胖虎Johnny
#2020.11.10
import urllib.request
import json
import random
import time as time0
import re,os
import pandas as pd
#设置代理
agents = [
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
]
def product_reviews(product_id = None,p = 0,maxPage = 99):
root_dir='京东手机评论_详细字典'
#判断之前是否爬取过这个型号手机的评论(一种型号的手机,颜色和内存不同,但评论共享)
os.makedirs(root_dir,exist_ok=True)
phone_list=os.listdir(root_dir)
phone_txt=str(product_id)+'.txt'
if phone_txt in phone_list:
print(product_id)
return []
#对每一页循环爬取
#"maxPage": 45
k_head=0
while p<maxPage:
#所有品牌评论
#url = 'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId={}&score=0&sortType=5&page={}&pageSize={}&isShadowSku=0&rid=0&fold=1'
#只看当前商品的评论
url= 'https://club.jd.com/comment/skuProductPageComments.action?callback=fetchJSON_comment98&productId={}&score=0&sortType=5&