python网络爬虫与信息提取

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 为一个包含服务器资源的对象 

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

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

  • r.status_code | http请求的返回状态, 200表示成功, 404表示失败|
  • r.text | http响应的内容的字符串形式, 即url对应的页面内容
  • r.encoding | 从http header中猜测的响应内容的编码方式

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

  • r.apparent_encoding | 从内容分析出的响应内容的编写方式
  • r.content | http响应内容的二进制形式

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)
  • method: 请求方式 GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS

  • url : 连接地址

  • **kwargs :控制访问的参数, 均为可选项(一共13个)

    1. params : 字典或者字节序列, 使得url
    2. data: 字典, 字节徐磊, 或者文件对象, 作为Requests的内容
    3. json: JSON格式的数据, 作为Requests的内容
    4. headers: HTTP的定制
    5. cookies : 字典或者cookieJar
    6. auth :元组
    7. files: z字典类型, 传输文件
    8. timeout 控制访问的参数, 超时时间
    9. proxies : 字典类型, 设置访问代理服务器, 可以增加登录认证
    10. all_redirects: True/False , 默认为True, 重定向开关
      11.stream : True/False , 默认为True, 获取内容立即下载开关
    11. verify: True/False , 默认为True, 认证SSL证书开关
    12. cert 本地SSL证书路径

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

你可能感兴趣的:(python网络爬虫与信息提取)