在python三天体验训练课的在线代码编写平台上可以通过的代码,放在pycharm上面发现会报错。如下图
解决方法是:让python程序伪装成浏览器。即添加请求头。
未添加请求头之前的代码:
import requests
shoes=requests.get('https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=43139143227&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1')
shoes_date=shoes.text
print(shoes_date)
开始解决:
添加请求头
headers={}#添加请求头
1.在网页空白处,单击,右键,检查
2.在程序员窗口中找network,任意点击一个请求,会发现有一个user-agent
3.把user-agent中的内容填写到请求头中去。注意要分开加2处‘’,另外从复制下来的链接中可以看出来是从chrome谷歌浏览器中去访问的。
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'}
#从网页上复制下来的是:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36
#注意要分开加2处‘’
4.request.get中也要添加进去,即在最后添加,headers=headers
shoes=requests.get('https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=43139143227&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1',headers=headers)#赋值,爬取京东的时候告诉京东,我不是爬虫我是浏览器
添加请求头之后的代码:
import requests
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'}#添加请求头
shoes=requests.get('https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=43139143227&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1',headers=headers)
shoes_date=shoes.text
print(shoes_date)
之后会发现编译成功,不会报错。
然后来验证第三节课。
☆未添加请求头之前
import requests
import json
import openpyxl
shoe=openpyxl.Workbook()
sheet=shoe.create_sheet()
shoes=requests.get('https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=43139143227&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1')
shoes_date=shoes.text
shoes_rest=shoes_date.replace('fetchJSON_comment98(','').replace(');','')
json_shoe=json.loads(shoes_rest)
comments=json_shoe['comments']
for item in comments:
color = item['productColor']
size = item['productSize']
sheet.append([color,size])
shoe.save('data/0子-18056567072.xlsx')#因为是上传云盘
☆添加之后
import requests
import json
import openpyxl
shoe=openpyxl.Workbook()
sheet=shoe.create_sheet()
headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'}#添加请求头
shoes=requests.get('https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=43139143227&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1',headers=headers)
shoes_date=shoes.text
shoes_rest=shoes_date.replace('fetchJSON_comment98(','').replace(');','')
json_shoe=json.loads(shoes_rest)
comments=json_shoe['comments']
for item in comments:
color = item['productColor']
size = item['productSize']
sheet.append([color,size])
shoe.save('D:\soft\shoes\data.xlsx')#上传本地
可以看到,确实ok啦。开心心,给自己画个樱花庆祝一下