1、内容:
2、Python IDE工具:
科学计算和数据分析:Canopy、Anaconda
3、Python网络爬虫与信息提取:
Request库:
(1)安装:pip install request
(2)验证:python IDLE中
>>> import requests
>>> r = requests.get("http://www.baidu.com")
>>> print r.status_code #200为访问成功
>>>type(r) #<class 'request.models.Response'>
>>>r.headers #头信息
(3)方法讲解:
(1)requests.request(method,url,**kwargs)
- method : 对应GET、HEAD、POST等7种类,包括OPTION;
- url:链接;
- **kwargs:访问控制参数,可选项;
- params:字典或直接序列,作为参数添加到url中;
- data :字典、字节序列或文件对象,作为request的内容;
- json:JSON格式的数据,作为request内容;
- headers:字典,HTTP定制头;
- cookies:字典或CookieJar,request中的cookie;
- auth:援助,支持HTTP功能;
- files:字典类型,传输文件;
- timeout:设置的超时时间,秒为单位;
- peoxies:字典类型,设定访问代理服务器,可以增加登录认证;
- allow_redirects:True/False,默认true,重定向开关;
- steam:True/False,默认true,获取内容立即下载开关;
- verify:True/False,默认true,认证SSL证书开关;
- cert:本地SSL证书路径;
(2) . r = requests.get(url,params=None,**kwargs)
构造一个向服务器请求支资源的Request对象,返回一个包含服务器资源的Response对象;
#url:拟获取的url链接;
#params:额外参数,字典或字节流格式,可选;
#**kwargs:12个控制访问的参数;
(3)其它方法均是通过调用requests来实现的。
(4)Response:
- r.encoding :如果header中不存在charset,则认为编码为ISO-8859-1;
- r.apparent_encoding :utf-8
4、爬取网页的通用代码框架
网络连接有风险,异常处理很重要;
Eg:
#/usr/bin/env.python
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 "wrong"
if __name__=="__main__":
url = "http://www.baidu.com"
print getHTMLText(url)
5、HTTP协议和Request库方法
HTTP:超文本传输协议,基于“请求与响应”模式的、的无状态应用层协议。
URL格式:http://host[:port][path] #host:主机和IP; port:端口,缺省为80;path:请求资源的路径