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)

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章