数据之路 - 爬虫 - urllib库

一、urllib库

urllib库,它是Python内置的HTTP请求库。它包含4个模块:

  • request:它是最基本的HTTP请求模块,可以用来模拟发送请求。

  • error:异常处理模块,如果出现请求错误,我们可以捕获这些异常,然后进行重试或其他操作以保证程序不会意外终止。

  • parse:一个工具模块,提供了许多URL处理方法,比如拆分、解析、合并等。

  • robotparser:主要是用来识别网站的robots.txt文件,然后判断哪些网站可以爬,哪些网站不可以爬,它其实用得比较少。

1.urllib.request模块

request模块主要功能:构造HTTP请求,利用它可以模拟浏览器的一个请求发起过程,

request模块同时还有:处理授权验证(authenticaton)、重定向(redirection)、浏览器Cookies以及其他内容。

- urlopen方法

 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

urlopen参数介绍:

  • url用于请求URL

  • data不传:GET请求,传:POST请求

  • timeout设置超时时间,单位为秒,意思就是如果请求超出了设置的这个时间,还没有得到响应,就会抛出异常。如果不指定该参数,就会使用全局默认时间。它支持HTTP、HTTPS、FTP请求。

  • context必须是ssl.SSLContext类型,用来指定SSL设置。

  • cafile指定CA证书

  • capath指定CA证书的路径,这个在请求HTTPS链接时会有用。

- Request方法

class urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)

Request参数介绍:

  • url用于请求URL,这是必传参数,其他都是可选参数。

  • data如果要传,必须传bytes(字节流)类型的。如果它是字典,可以先用urllib.parse模块里的urlencode()编码。

  • headers是一个字典,它就是请求头,我们可以在构造请求时通过headers参数直接构造,也可以通过调用请求实例的add_header()方法添加。添加请求头最常用的用法就是通过修改User-Agent来伪装浏览器

  • origin_req_host指的是请求方的host名称或者IP地址。

  • unverifiable表示这个请求是否是无法验证的,默认是False,意思就是说用户没有足够权限来选择接收这个请求的结果。例如,我们请求一个HTML文档中的图片,但是我们没有自动抓取图像的权限,这时unverifiable的值就是True`。

  • method是一个字符串,用来指示请求使用的方法,比如GET、POST和PUT等。

2.urllib.error模块

3.urllib.parse模块

4.urllib.robotparser模块

猜你喜欢

转载自www.cnblogs.com/Iceredtea/p/11050660.html