Python学习之爬取京东商城评论区

京东商城评论区的爬取

‘’’
注意:
1.访问网页时返回的数据时json类型,无法使用etree对HTML进行解析,使用xpath来获取想要的数据
2.在requests库中,提供了响应对象的json方法,用来对json格式的响应体进行反序列化
3.得到了由json转换成的字典后,参照Fech/HXR中Preview的结构,便可利用遍历字典的方式来获取我们想要的数据
‘’’

 import fake_useragent
import requests

#指定url
url = "https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc&clientVersion=1.0.0&t=1710897833040&loginType=3&uuid=181111935.17108518443021816314079.1710851844.1710856131.1710897432.3&productId=10096776496389&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1&bbtf=&shield="

#将读取的文件写到./jingdong.txt中
fp = open("./jingdong.txt","w+",encoding="utf-8")

# 设置UA伪装
head = {
    "User-Agent": fake_useragent.UserAgent().random

}

# 发送请求
response = requests.get(url, headers=head)

# 获取响应的数据
#设置response_dict来接收json转化后的字典
response_dict = response.json()
 '''
在requests库中,不用json.loads方法进行反序列化(将json数据转化为字典),
而是提供了响应对象的json方法,用来对json格式的响应体进行反序列化
比如:
 r = requests.get(url)
 r.json()
'''

#验证返回的数据类型为字典
# print(type(response_dict))

#利用遍历字典的方式来获取我们想要的数据
for comment in response_dict['comments']:
    #replace方法,用“ ”来替代换行符
    #爬取所有的评论
    content_list = comment['content'].replace("\n", "")
    #爬取手机颜色
    productColor_list = comment['productColor'].replace("\n", "")
    #爬取手机型号
    productSize_list = comment['productSize'].replace("\n", "")
    #爬取手机名称
    referenceName_list = comment['referenceName'].replace("\n", "")
    # print(content_list+","+productColor_list+","+productSize_list+","+referenceName_list)
    fp.write(content_list+","+productColor_list+","+productSize_list+","+referenceName_list+"\n")


fp.close()
  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值