Request库--python爬虫

Request库:

  • 普通用法
    • http协议对资源的操作
    • requests常用方法
    • 方法的控制访问参数
  • 高级用法
    • 代理
    • session
    • cookies

通用框架:

import requests

def getHtmlText(url):
    try:
        r = requests.get(url, timeout = 30)
        r.raise_for_status() #状态码不是200,则产生HTTPRrro异常
        r.encoding = r.apparent_enconding
        return r.text
    except:
        return "出现HTTPRrro异常!"

if __name__ == "__main__":
    url = "www.sina.com"
    print(getHtmlText(url))

1)普通用法:

1.1)http协议对资源的操作:

方法说明
GET请求获取url位置的资源
HEAD请求获取url位置资源的响应消息报告,即获得资源的头部信息
POST请求向url位置的资源后附加新数据(提交信息到服务器)
PUT请求向url位置存储一个资源,覆盖原url位置的资源(未提交字段被删除)
PATCH请求局部更新url位置的资源,即改变该处资源的部分内容(有利于缓解带宽)
DELETE请求删除url位置存储的资源

1.2)requests主要方法:

  • requests.reuqest(method, url, **kwargs )

**kwargs(可选项):13个控制访问参数:

1> params:字典或字节序列,作为参数添加到url

>>> kv = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.request('GET', 'http://python123.io/ws', params=kv)

2> data:字典、字节序列或文件对象,作为request的内容:

>>> 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)

3> json:JSON数据格式,作为request的内容:

4> headers:字典,http定制头:

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

5> cookies:字典或CookieJar, request中的cookie:

6> auth:元祖,支持http认证功能:

7> file:字典类型,传输文件:

>>> fs = {'file': open('data.xls', 'rb')}
>>> r = requests.request('POST', 'http://python123.io/ws', files=fs)

8> timeout:设定超时时间,单位:秒:

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

9> proxies:字典类型,设置访问代理服务器,可以增加登陆认证:

10> allow_redirects:True/Flase,默认为True,重定向开关:

11> stream:True/Flase,默认为True,获取内容立即下载开关:

12> verify(核实):True/Flase,默认为True,认证SSL证书开关:

13> cert:本地SSL证书路径:

  • requests.get(url, params=None, **kwargs):12个控制访问参数
  • requests.post(url, data = None, json = None, **kwargs)

......

2)高级用法:

  • 代理(proxy)
  • session

          2.1> 代理(proxy):

  • 通过为任意请求方法提供 proxies 参数来配置单个请求
import requests
proxies = {
    "http":"http://10.10.1.10:3128",
    "https":"http://10.10.1.10:1080",
}
requests.get("http", proxies = proxies)
  • 通过环境变量 HTTP_PROXY 和 HTTPS_PROXY 来配置代理
$ export HTTP_PROXY="http://10.10.1.10:3128"
$ export HTTPS_PROXY="http://10.10.1.10:1080"

$ python
>>> import requests
>>> requests.get("http://example.org")

          2.2> session:保持跨请求的某些参数:

  • 跨请求保持cookie
import requests
session = requests.Session()
session.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = session.get("http://httpbin.org/cookies")
print(r.text)
# '{"cookies": {"sessioncookie": "123456789"}}'

​​​​​​

官方文档:http://2.python-requests.org/zh_CN/latest/user/advanced.html#advanced

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值