热度 18
2017-11-7 13:50
1298 次阅读|
0 个评论
1、Requests库介绍 Requests 库是 Python 的第三方库,它也是目前公认的爬取网页的最好的第三方库。它的使用比较简洁,甚至用一行代码就可以获取相关的资源,更多的关于 Requests 库的信息可以在 http://www.python-requests.org 看到。 2、测试requests库 状态码是200,说明访问成功 更改它的编码,然后输出网页内容 requests库的常用方法 3、requests库的get方法 获得一个网页的最简单的一行代码就是: r = requests.get(url) 通过 get 和 url 构造了一个向服务器请求资源的 Request 对象,返回一个包含服务器资源的 Response 对象。 requests.get(url,params=None,**kwargs) url: 拟获取页面的 url 链接; params: url 中的额外参数,字典或字节流格式,可选; **kwargs: 12 个控制访问的参数; 4、Response对象 Response 属性 r.encoding: 如果 header 中不存在 charset, 则认为编码为 ISO-8859-1 5、requests库的异常 r.raise_for_status() : 如果不是 200 ,产生异常 requests.HTTPError 6、爬取网页的通用代码框架 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)) 7、HTTP协议 HTTP,Hypertext Transfer Protocol, 超文本传输协议。它是一个基于请求与响应模式的、无状态的应用层协议。它采用 URL 作为定位网络资源的标识。 URL 格式 http://host host: 合法的主机域名或者 IP 地址; port: 默认为 80 ; path: 请求资源的路径; HTTP对资源的操作 HTTP协议与requests库的功能 requests库的head()方法 requests库的post()方法 8、requests库的主要方法 (1) requests.request(method,url,**kwargs) method: 请求方式,对应 get/put/post 等 7 种 **kwargs: 控制访问参数,共 13 个 (2)**kwargs(13个可选参数 ) params: 字典或者字节序列,作为参数增加到 url data: 字典、字节序列或文件对象 json ; JSON 格式的数据,作为 Requests 的内容 headers: 字典, HTTP 定制头 hd = {'user-agent':'Chrome/10'} r = requests.request('POST','http://python123.io/ws',header=hd) cookies: 字典或 CookieJar,Request 中的 cookie auth: 元祖,支持 HTTP 认证功能 file: 字典类型,传输文件 fs = {'file':open('data.xls','rb')} r = requests.request('POST','http://python123.io/ws',files=fs) timeout: 设定超时时间 proxies: 字典类型,设定访问代理服务器,可以增加登录认证 allow_redirects: True/False, 默认为 True, 重定向开关; stream: True/False, 默认为 True, 获取内容立即下载开关; verify: True/False, 默认为 True, 认证 SSL 证书开关; cert: 本地 SSL 证书路径