python网络爬虫与信息提取

2017-03-01  本文已影响55人  Eric苏离

1 Request 库

1.1 Requests库的安装

python2.x版本

pip install requests 

python3.x版本

pip3 install requests

1.2

Requests库常用方法 ---7个常用方法
get()方法

r = requests.get(url)
r 为一个包含服务器资源的对象 <class requests.models.Response>

requests.get(url, params = None, **kwargs)
url:拟获取页面的url连接
params:url中的额外参数, 字典或者字节流格式, 可选
**kwargs:12个控制访问的参数

<strong>#Response对象包含爬虫返回的内容</strong>
属性 | 说明

如果header中不存在charset, 则认为编码为iso-8859-1;

Requests 库的异常

异常 ********** 说明
requests.ConnectionError | 网络连接错误异常, 比如dns查询失败
requests.HTTPError | HTTP错误异常
requests.URLRequired | URL缺失异常
requests.ToManyRedirects | 超过最大重定向次数, 产生重定向异常
requests.ConnectTimeout | 连接远程服务器超时异常
requests.Timeout |请求url超时, 产生超时异常

r.raise_for_status 如果不是200, 产生一个requests.http异常

HTTP协议
超文本传输协议


HTTP协议对资源的操作类型
方法 ******************** 说明
GET | 请求获取URL位置的资源
HEAD | 请求获取URL位置资源的响应分析报告, 即获取该资源的头部信息
POST | 请求想URL位置资源后附加新的数据
PUT | 请求向URL位置存储一个资源, 覆盖原URL位置的资源
PATCH | 请求局部更新URL位置的资源, 即改变该处资源的部分内容
DELETE | 请求删除URL位置的资源


Requests 主要方法

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

requests库的其他6个常用的方法, 均是基于request方法

单元小结

- requests.request() 
- requests.put()
- requests.get()
- requests.head()
- requests.delete()
- requests.patch()
- requests.post()

通用代码框架的使用

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))

上一篇 下一篇

猜你喜欢

热点阅读