Requests库中有7个主要的函数,分别是request(), get(), head(), post(), put(), patch(), delete(). 这七个函数其中request()函数是其余六个函数的基础函数,其余六个函数的实现都是通过调用该函数实现的。
方法 | 说明 |
---|---|
requests.request() | 构造一个请求,支撑一下方法的基础方法 |
requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET(请求URL位置的资源) |
requests.head() | 获取HTML网页头信息的方法,对应于HTTP的HEAD(请求URL位置的资源的头部信息) |
requests.post() | 向HTML网页提交POST请求的方法,对应于HTTP的POST(请求向URL位置的资源附加新的数据) |
requests.put() | 向HTML网页提交PUT请求的方法,对应于HTTP的PUT(请求向URL位置储存一个资源,覆盖原来URL位置的资源) |
requests.patch() | 向HTML网页提交局部修改的请求,对应于HTTP的PATCH(请求局部更新URL位置的资源) |
requests.delete() | 向HTML网页提交删除请求,对应于HTTP的DELETE(请求删除URL位置储存的资源) |
在这个库中一般常用的就是get()函数。最基础的是request()函数,其一共有15个参数, 具体每个参数的用法如下;
参数 | 说明 | 例子 |
---|---|---|
method | 请求方式,对应于get/put/post中七种 | requests.request(‘GET’,url)或者requests.request(‘HEAD’,url)等 |
url | 待获取的页面的url链接 | requests.request(‘GET’,’https://www.baidu.com‘) |
params | 将字典或字节序列,作为参数添加到url中 | requests.request(‘GET’, ‘https://www.baidu.com‘, params={‘key1’:’value1’,’key2’:’value2’}).这样就相当于访问了‘https://www.baidu.com?key1=value1&key2=value2’这个URL。 |
data | 字典,字节序列或者文件对象,作为Request的内容 | |
json | JSON格式的数据,作为Request的内容 | |
headers | 字典,HTTP定制头 | 可以在请求中附加一些信息,例如:伪装自己是一个浏览器。例如 r = requests.request(‘POST’, ‘http://python123.io/ws‘, headers={‘user-agent’:’Chrome/10’} 这样就把自己伪装成谷歌浏览器访问资源) |
auth | 元组,支持HTTP认证功能 | |
files | 字典类型,传输文件 | fs={‘file’:open(’data.xls’, ‘rb’);r = requests.request(‘POST’, ‘http://python123.io/ws‘, files=fs) |
timeout | 设定超时时间,单位为秒 | |
proxies | 字典类型,设定访问代理服务器,可以增加登录认证 | |
allow_redirects | :Truel/False,默认为True,重定向开关 | |
stream | True/False 默认为True | 获取内容立即下载开关 |
verify | True/False 默认为Ture,认证SSL证书开关 | |
cert | 本地SSL证书路径 |
下面是一个常用的获取URL位置资源的基本爬虫框架。
def getHTMLText(url):
try:
kv = {'user-agent' : 'Mozilla/5.0'}
r = requests.get(url, headers = kv, timeout = 30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return 'erro'
if __name__ == '__main__':
url = 'https://www.baidu.com/'
print(getHTMLText(url))