一、打开pycharm,创建py文件
打开编辑器pycharm,点击创建py文件,文件命名为“jdtest.py”
访问京东地址:https://www.jd.com/,在搜索栏中输入“鞋子”,点击“销量”的搜索条件,如下展示:
进入到鞋子详情界面中,并通过F12打开调试窗口,如下展示:
点击“商品评价(5万+)”,通过复制评论的区域,查找该网页的路径url及请求头User-Agent信息,可通过点击“Headers”中可查看:
查找到URL:https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=71497516142&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1,
当请求第二页的时候,URL路径为如下:https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=71497516142&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0&rid=0&fold=1
可查看以上两个路径,页码的变化,通过page的值(第一页为0,第二页为1)可体现出;
查找到User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
将路径和请求头放置到py中,并将获取的结果提取出来,具体展示如下:
将获取的结果放置到json格式中,通过print(resp.text)获取,如下展示:
并将获取的结果复制出来,并将其json格式标准化,可知结果的头部有“fetchJSON_comment98(”,尾部有“);”,可通过replace将其替换掉为空,具体如下:
替换如下:
替换完成后,格式如下:
获取comments中的鞋子和尺寸大小:
定义一个excel文件进行存储获取到鞋子数据信息,引入openpyxl,并创建一个excel文件,创建一个sheet中进行存储数据;
点击执行该文件,运行成功:
运行后的excel文件,可在对应的路径下进行查看,结果展示如下:
通过wps格式,打开该文件,出现数据如下:
若是想获取多页的数据,可通过改变range中的数据,range(0, 1)改成,range(0, 10),再执行命令,可获取到更多数据(注:需要存储新的excel文件名,否则会报错),如下:
重新执行,结果将会展示100条数据(一页10条,10页,100条数据)如下:
若是想试该用例,源代码如下:
import requests
import json
import openpyxl
excel=openpyxl.Workbook()
sheet1=excel.create_sheet()
headers ={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
}
for itemin range(0, 10):
url='https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=71497516142&score=0&sortType=5&page='+str(item)+'&pageSize=10&isShadowSku=0&rid=0&fold=1'
resp=requests.get(url,headers=headers)
# print(resp.text)
content=str(resp.text).replace('fetchJSON_comment98(','').replace(');','')
jsonData=json.loads(content)
comments=jsonData['comments']
for iin comments:
color=i['productColor']
size=i['productSize']
sheet1.append([color,size])
excel.save('XXXX')
【注:其中的XXXX可根据实际的地址进行转换】