python-爬虫基础篇-requests库-基础使用篇

**

昨夜西风凋敝树,独上高楼,望尽天涯路

衣带渐宽终不悔,为伊消得人憔悴。

**

基于urllib库的爬虫实战:

https://github.com/OTZHANG/SpiderBaseByPython/tree/master/venv/Include

基础用法一:get

直接使用get方法发起get请求,返回一个response对象。此处没有设置headers,User-Agent默认使用的是‘python-requests‘,版本为当前requests库的版本,具体可看源码。

url = 'http://www.baidu.com'
resp = requests.get(url)
#def get(url, params=None, **kwargs)
  • params可以用来传递url参数,比如:
url = 'http://www.baidu.com'
resp1 = requests.get(url)
print(resp1.url)
print(resp1.status_code)

在这里插入图片描述

param = {'key01':'03'}
url = 'http://www.baidu.com'
resp2 = requests.get(url,params=param)
print(resp2.url)
print(resp2.status_code)

在这里插入图片描述
设置了params参数后,会在url后面拼接key和value,典型的get请求方式。

  • 给请求设置headers

headers = {
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24’}
resp1 = requests.get(url, headers=headers)

  • 给请求设置cookie
    cookies = dict(cookies_are=‘working’)
    r = requests.get(url, cookies=cookies)

requests库常用请求发起方法:

requests.get() #常用
requests.post() #常用
requests.put()
requests.delete()
requests.head()
requests.options()

请求的响应内容response:

resp.content # 按照相应原始报文进行显示,不进行编码解析

resp.text #按照指定编码对原始报文进行解析显示,如果未手动指定编码,requests会从响应报文体中获取编码格式进行显示。

resp.json() #requests 内置的json解析器,解析json数据

#获取服务器原始套接字响应
resp.raw
resp.raw.read()
该场景下需要发起请求时指定stream=True
r = requests.get(‘http://www.baidu.com’, stream=True)

#获取响应状态
resp1.status_code
同时request中还有一个内置的状态查询对象
requests.codes.ok

在这里插入图片描述
#抛出响应异常
resp.raise_for_status()

重定向

#查询所有一次请求的请求历史和重定向(requests中除了head请求类型外,其他请求都默认开启了重定向)
Response.history()
#是一个 Response 对象的列表,从最老到最近的请求进行排序。
#禁用重定向
allow_redirects=False
r = requests.get(‘http://github.com’, allow_redirects=False)

#head()类型,开启重定向:
r = requests.head(‘http://github.com’, allow_redirects=True)

代理

proxies = {
  "http": "http://10.10.1.10:3128",
  "https": "http://10.10.1.10:1080",
}
requests.get("http://example.org", proxies=proxies)

#最重要的还是使用,学多少用多少,用到了,遇到不会的再回过头来学。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值