赞
踩
‘’’
注意:
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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。