爬虫学习笔记(三)—— requests库
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3 。requests目前基本上完全满足web请求的所有需求,requests库常用的方法有:get、post、put、delete、head、options
一、安装
通过pip安装(注意这里的requests记得加s)
pip install requests二、发送请求
使用 Requests 发送网络请求非常简单。导包,之后添加方法进行发起请求的方法变得简单,我们只需要着重关注一下发起请求的参数 ,10个重要的参数。
def request(url,params=None, headers=None, cookies=None,timeout=None,allow_redirects=True, proxies=None,verify=None, data=None,json=None):passparams:字典或者字节序列,作为参数增加到url中
headers:添加请求头,在进行爬虫时添加headers很有必要,如果不添加,很可能把你禁掉
cookies: 字典或CookieJar对象
timeout:设置的超时时间,秒为单位
proxies:字典类型,设定访问代理服务器,可以增加登录认证
(注意:设置的代理ip必须是能用的,有需要的建议网上购买)
allow_redirects: 值为True/False,默认为True, 重定向开关
很多网站是http开头,为了不影响老客户,原网站不懂,当访问http的原网址时,重定向到新的https网址,在requests中 allow_redirects默认是True,如果是False则不允许重定向,也就无法重定向新网址获取数据。
verify:值为True/False,默认为True, 忽略证书验证
(我们访问的网址出现不安全时,这时就会出现关于SSL的报错,verify设置false就可以爬取了)
Json:JSON格式的数据,作为requests的内容
POST请求发送Json数据:
data: 是第二个控制参数,向服务器提交数据
POST请求发送Form表单数据:
注意:json 和 data 不可以同时添加,同时添加会造成json中没有数据
三、response对象
常用属性:
import requests test_url="http://httpbin.org/get"#测试url res=requests.get(url=test_url) print(res.text)#直接转换成字符串 非字节码 print(res.content)#图片数据 使用此参数 print(res.status_code)#状态码 print(res.json()["headers"]["User-Agent"])#自动转换成 字典格式 print(res.headers)#响应头 print(res.cookies)#响应cookie print(res.url)#请求的url print(res.request.url)#请求的url print(res.request.headers)#请求头四、session方法
session方法是requests库发起请求的一种方法,这种方法会自动保存访问页面得到的cookie值,从而再次访问的时候会自动携带cookie,使得操作cookie方便,不需要我们自己添加cookie了。常用于登录;
requests与session发起请求对比
import requestsindex_url="http://www.baidu.com" headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"} res=requests.get(index_url,headers=headers) print("请求头信息********requests*******") print(res.request.headers)结果: 请求头信息********requests******* {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'BAIDUID=835160CB3530E3CFD5EB427D5E848CD0:FG=1; BIDUPSID=835160CB3530E3CF266788D53A9B383D; PSTM=1626055033; BD_LAST_QID=17570873450330636283'} #session的使用 index_url="http://www.baidu.com" headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"} session=requests.session()#创建session对象 session.headers=headers#添加请求头 res_ss=session.get(index_url) print("请求头信息********session*******") print(res_ss.request.headers)结果: 请求头信息********session******* {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 'Cookie': 'BAIDUID=11D1727367960A85924002C72FF29721:FG=1; BIDUPSID=11D1727367960A851936876B050ED76B; PSTM=1626055034; BD_LAST_QID=14539128174352067748'}总结
以上是生活随笔为你收集整理的爬虫学习笔记(三)—— requests库的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 爬虫学习笔记(二)——使用 reques
- 下一篇: 爬虫学习笔记(四)—— urllib 与