Python 爬虫-Requests库入门

时间:2020-12-03 19:57:04

2017-07-25 10:38:30

response = requests.get(url, params=None, **kwargs)

  • url : 拟获取页面的url链接∙ params : url中的额外参数,字典或字节流格式,可选
  • params参数是字典或字节序列,作为参数增加到url中
kv = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.request('GET', 'http://python123.io/ws', params=kv)
>>> print(r.url)
http://python123.io/ws?key1=value1&key2=value2
  • **kwargs: 12个控制访问的参数

Python 爬虫-Requests库入门

headers:字典,HTTP定制头

 hd = {'user‐agent': 'Chrome/10'}
 r = requests.request('POST', 'http://python123.io/ws', headers=hd)

timeout : 设定超时时间,秒为单位

 r = requests.request('GET', 'http://www.baidu.com', timeout=10)

proxies : 字典类型,设定访问代理服务器,可以增加登录认证

>>> pxs = { 'http': 'http://user:pass@10.10.10.1:1234'
'https': 'https://10.10.10.1:4321' }
>>> r = requests.request('GET', 'http://www.baidu.com', proxies=pxs)

使用举例:

import requests

# r:response 右侧get: requests
r = requests.get('http://jwc.seu.edu.cn/')

一、返回值Response对象的属性

Python 爬虫-Requests库入门

Python 爬虫-Requests库入门

Python 爬虫-Requests库入门

二、爬取网页的通用代码框架

import requests

def gethtml(url):
# 打开网页有风险,需要使用try-except语句进行风险控制
try:
r = requests.get(url)
r.raise_for_status() # 如果打开失败,则会抛出一个HttpError异常
# encoding是从header中分析出来的编码方式,apparent_encoding是 从内容分析出的编码方式
r.encoding=r.apparent_encoding
return r.text
except:
print("打开失败")

 三、requests库的方法和HTTP协议

  • HTTP协议:超文本传输协议

HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。

HTTP协议采用URL作为定位网络资源的标识,URL格式如下:http://host[:port][path]

HTTP协议对资源的操作方法:

Python 爬虫-Requests库入门

其中get,head方法是从服务器取回数据,post,put,patch,delete方法是向服务器写入或者修改数据。

patch 和 put 的区别:patch 是局部更新,而put 是全部更新。patch节省网络带宽,是HTTP协议改良后的新增指令。

HTTP的指令和requests 的方法一一对应。

  • Requests 的七个主要方法

Python 爬虫-Requests库入门