原创 Python爬虫学习笔记(1)——requests库

2017-11-7 13:50 1171 14 14 分类: 软件与OS 文集: Python爬虫学习笔记


1、Requests库介绍

            Requests 库是Python的第三方库,它也是目前公认的爬取网页的最好的第三方库。它的使用比较简洁,甚至用一行代码就可以获取相关的资源,更多的关于Requests 库的信息可以在http://www.python-requests.org看到。


2、测试requests库

状态码是200,说明访问成功

更改它的编码,然后输出网页内容


requests库的常用方法

3、requests库的get方法

获得一个网页的最简单的一行代码就是:

r = requests.get(url)

通过geturl构造了一个向服务器请求资源的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[:port][path]

host:合法的主机域名或者IP地址;port:默认为80path:请求资源的路径;


HTTP对资源的操作


HTTP协议与requests库的功能


requests库的head()方法


requests库的post()方法


8、requests库的主要方法

(1)requests.request(method,url,**kwargs)

method:请求方式,对应get/put/post7

**kwargs:控制访问参数,共13

(2)**kwargs(13个可选参数)

params:字典或者字节序列,作为参数增加到url


data:字典、字节序列或文件对象

jsonJSON格式的数据,作为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证书路径


文章评论0条评论)

登录后参与讨论
我要评论
0
14
1
2
3
4
5
6
7
8
9
0
关闭 站长推荐上一条 /4 下一条