0
点赞
收藏
分享

微信扫一扫

Python网络爬虫《一》


1、内容:

Python网络爬虫《一》_HTTP

2、Python IDE工具:

Python网络爬虫《一》_Python_02

科学计算和数据分析: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)方法讲解:

Python网络爬虫《一》_Python_03

(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:

Python网络爬虫《一》_Python_04

  • r.encoding :如果header中不存在charset,则认为编码为ISO-8859-1;
  • r.apparent_encoding :utf-8


4、爬取网页的通用代码框架

     网络连接有风险,异常处理很重要;

Python网络爬虫《一》_python_05

Python网络爬虫《一》_HTTP_06

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:请求资源的路径

Python网络爬虫《一》_Python_07



举报

相关推荐

0 条评论