- Requests库入门
- 网络爬虫的盗亦有道
- Requests库爬取实例
Request库入门
import requests
r=requests.get("http://www.baidu.com")
'HTTP请求返回状态码,200表示成功'
r.status_code
r.encoding='utf-8'
'HTTP响应的字符串形式,即,url对应的页面内容'
r.text
Requests库的7个主要方法
方法 | 说明 |
---|---|
requests.request() | 构造一个请求,支撑以下各方法的基础方法 |
requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET |
requests.head() | 获取HTML网页的头信息方法,对应于HTTP的HEAD |
requests.post() | 向HTML网页提交POST的方法,对应于HTTP的POST |
requests.put() | 向HTML网页提交PUT的方法,对应于HTTP的PUT |
requests.patch() | 向HTML网页提交局部修改请求,对应于HTTP的PATCH |
requests.delete() | 向HTML网页提交删除请求,对应于HTTP的DELETE |
Requests库的get()方法
def get(url, params = None, **kwargs):
kwargs.setdefault('allow_redirects', True)
return request('get', url, params, **kwargs)
爬取网页的通用代码框架
import requests
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status() # 如果状态不是200,引发HTTPError异常
r.encoding= r.apparent_encoding
return r.text
except:
return "产生异常"
if __name__ == "__main__":
url= "http://www.baidu.com"
print(getHTMLText(url))
HTTP协议及Requests库方法
向URL post一个字典,自动编码为form(表单)
import requests
payload = {"key1":"value1", "key2":"value2"}
r = requests.post("http://httpbin.org/post", data = payload)
print(r.text)
输出如下:
向URL post一个字符串自动编码为data
r = requests.post("http://httpbin.org/post", data = 'ABC')
print(r.text)
Request库主要方法解析
options向服务器获取一些服务器跟客户端能够打交道的参数,并不与获取资源直接相关,因此,平常时用得较少
requests.request(method,url,**kwarge)
**kwargs:控制访问的参数,均为可选项
params:字典或字节序列,作为参数增加到url中
kv = {"key1":"value1", "key2":"value2"}
r = requests.request('GET', 'http://python123.io/ws', params=kv)
print(r.url)
结果:
data:字典、字节序列或文件对象,作为Requests库的内容
kv = {"key1":"value1", "key2":"value2"}
r = requests.request('POST', 'http://python123.io/ws',data = kv)
body = '主体内容'
r = requests.request('POST', 'http://python123.io/ws',data = body)