爬虫基础篇(3.30-3.31)
主要是重新收集了requests库的内容
目录
一. 爬取网页的通用代码框架
二. requests库的七个主要方法
三. requests库的request方法
四. Robots协议
一. 爬取网页的通用代码框架
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))
注:raise_for_status()方法可判断返回的response对象的状态是否正常(状态值非200则异常)
二. requests库的七个主要方法
- requests.request()
构造一个请求,支撑一下各方法的基础方法 - requests.get()
获取HTML网页的主要方法,对应HTTP的GET - requests.head()
获取HTML网页头的信息方法,对应HTTP的HEAD - requests.post()
向HTML网页提交POST请求方法,对应HTTP的POST,附加文件/内容 - requests.put()
向HTML网页提交PUT请求的方法,对应HTTP的RUT,内容覆盖 - requests.patch()
向HTML网页提交局部修改请求,对应于HTTP的PATCH,部分修改 - requests.delete()
向HTML页面提交删除请求,对应于HTTP的DELETE
三. requests库的request方法
requests.request(method, url, **kwargs)
其中method参数表示请求方法,包括这几个:
‘GET’ ‘HEAD’ ‘POST’ ‘PUT’ ‘PATCH’ ‘delete’
(实际上就是requests库的另外几个方法)
**kwargs参数包括:
- params : 字典或字节序列,作为参数增加到url中
- data : 字典、字节序列或文件对象,作为Request的内容
- json : JSON格式的数据,作为Request的内容
- headers : 字典,HTTP定制头
- cookies : 字典或CookieJar,Request中的auth : 元组支持HTTP认证功能
- files : 字典类型,传输文件
- timeout : 设定超时时间,秒为单位
- proxies : 字典类型,设定访问代理服务器,可以增加登录认证
四. Robots协议
- 作用: 网站告知网络爬虫那些页面可以抓去,哪些不行
- 形式:在网站根目录下的robots.txt文件
Robots协议基本语法:
#注释. *代表所有、 /代表根目录
User-agent:*
Disallow:/
注:网站的人机交互模式,如图形、文本框、需要点击按钮的,在正式地向后台提交的时候,实际上都是以链接的形式提交的,当需要用py模拟申请的时候,需了解其向后台提交的链接形式。(网页上的任何一个内容都有一个与之对应的url链接)