- 目录
- requests
- BeautifulSoup
- 学习:MOOC
Python网络爬虫与信息提取
- requests
-
实际上requests只有一个方法,即request。与之对应的
.get
;.head
;.post
;.put
;.patch
;.delete
都属于.request
,只是为了方便调用将其一一列出;
-
HTTP基础补充
url中通过HTTP协议存取资源的Internet路径,一个url对应一个数据资源。
无状态,即提交请求互不影响。
实际使用得更多的是GET和HEAD从服务器获取信息;向服务器提交请求会给服务器带来具大负荷,所以POST,PUT,PATCH,DELETE一般用不到。 -
requests.request
官方中文教程地址:
http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
requests.request(method, url, **kw)
- method : 请求方式,对应get/put/post等7种
- url
- **kw : 控制访问的13个参数
- paramss : 字典或字节序列,作为参数增加到url中
- data : 字典、字节序列或文件对象,作为request的内容
- json : JSON格式的数据,作为requests的内容
- headers : 字典,HTTP定制头;eg.{'user-agent' : 'Chrome/10'}
- cookies : 字典或CookieJar,request中的cookie
- auth : 元组,支持HTTP认证功能
- files : 字典类型,传输文件
- timeout : 设定超时,单位秒
- proxies : 字典,设定访问代理服务器,可增加登陆认证
- allow_redirects : True/False,默认True,重定向开关
- stream : True/False,默认True,获取内容立即下载
- verify : True/False,默认True,SSL认证开关
- cert : 本地SSL证书路径
-
Response对象
r.encoding
:如果header中不存在charset,则默认ISO-8859-1,r.text
据r.encoding
显示网页。r.apparent_encoding
作为备选。 -
为了保证代码运行的稳定性,需注意异常处理。
requests
自带了6种异常提示ConnectionError
,HTTPError
,URLRequired
,TooManyRedirects
,Connectimeout
,Timeout
.
-
通用爬虾代码框架
# 通用爬虾代码框架
# 稳定
import requests
def getHtmlText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
if __name__ == '__main__':
url = "http://www.baidu.com"
print(getHtmlText(url))
- BeautifulSoup
参考链: