爬虫基础+requests
2.客户端渲染: 每次请求只要一个html,第二次请求拿到数据,进行数据展示,在页面源代码中,看不到数据
优点:拿到的数据是非常有规律的
HTTP
请求头中常见的一些重要的内容(爬虫需要)
1.User-Agent:请求载体的身份标识(用啥发送的请求)
2.Referer:防盗链(这次请求是从哪个页面来的?返爬会用到的)
3.cookie:本地字符串数据信息(用户登录信息,返爬的token)
响应头里重要的内容:
1.cookie:本地字符串数据信息(用户登录信息,反爬的token)
2.各种神奇的莫名其妙的字符串(一般都是token字样,防止各种攻击和反爬)
安装requests
pip install requests
国内源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
推荐 清华源 阿里源
地址栏里统一用get请求
Requests
1、发送post请求时,发送的数据必须是字典的形式,放在字典中,通过data参数进行传递,如果出现乱码的情况,可以用python基础中的.json
例如:
dat = {
"kw": s
}
# 发送post请求
resp = requests.post(url, data=dat)
print(resp.json())
post请求带参是data
2、发送get请求时带参是params
3、resp.close()
运行完事之后,最好使用这个关闭爬虫代码,不然访问的次数过多会出现毒死的现象就会报错
import requests
url = 'https://www.sogou.com/web?query=周杰伦'
dic = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'
}
resp = requests.get(url,headers=dic) #处理了一个小小的反爬
print(resp)
print(resp.text) # 拿到页面源代码
如果路由过长,可以使用params重新封装
例如:
import requests
url = 'https://movie.douban.com/j/chart/top_list'
# 重新封装参数
param = {
"type": "24",
"interval_id": "100:90",
"action": 100,
"start": "0",
"limit": 20,
}
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'
}
resp = requests.get(url=url,params=param,headers=headers)
# print(resp.json())
print(resp.request.headers)
# resp.close()
代理