第一步,打开喜剧榜网页,检查-->抓包工具network-->XHR,找到url,请求方式get,url参数
参数:
地址、请求方式
第二步,确定参数、地址、请求方式后,开始写代码
import requests
url = "https://movie.douban.com/j/chart/top_list"
param = {
"type": "24",
"interval_id": "100:90",
"action": "",
"start": 0,
"limit": 20,
}#封装参数字典
resp = request.get(url=url,params=param)
print(resp.request.url)#得到完整的url
print(resp.text)
运行结果:
说明:1、以上代码成功将url后面很长的串参数换成param字典,缩短代码中url的长度。2、代码运行结束后并没有返回要的text内容,由于代码没有问题,那就说明网站具有反爬机制。第一个考虑的解决方法就是添加headers的User-Agent.
第三步,添加User-Agent
import requests
url = "https://movie.douban.com/j/chart/top_list"
param = {
"type": "24",
"interval_id": "100:90",
"action": "",
"start": 0,
"limit": 20,
}#封装参数字典
header = {
"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"
}
resp = request.get(url=url, params=param, headers=header)
print(resp.request.url)#得到完整的url
print(resp.json())#如果是text,则部分文字无法正常显示,改为json文件即可
运行结果:
补:以上两个可复制的代码段是我直接在csdn里写的,恐格式等不佳。另附完整代码:
import requests #导入requests库
url = "https://movie.douban.com/j/chart/top_list"
param = {
"type": "24",
"interval_id": "100:90",
"action":"" ,
"start": 0,
"limit": 20,
} #重新封装参数,字典
header ={
"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"
}
resp = requests.get(url=url, params=param, headers=header)
print(resp.request.url) #得到完整的url
print(resp.json()) #没有任何输出,代码没问题 ,只有一种可能就是被反爬了!
#爬虫不好使,第一个要尝试的就是User-Agent
#rint(resp.request.headers)#默认不是浏览器访问而是python-requests/2.27.1,所以要加一个User-Agentl
以上就爬到了喜剧榜的数据了。