python爬虫-urllib的基本介绍

本文详细介绍了Python的urllib库,包括requests模块的基础使用、异常处理模块如URLError和HTTPError,以及高级功能如HTTPDefaultErrorHandler和链接解析工具。重点讲解了如何发送请求、设置超时、代理和处理各种网络错误。
摘要由CSDN通过智能技术生成

2.1.urllib的使用

包含有4个模块

requests:这是一个最基本的HTTP请求模块,可以模拟请求的发送

error:异常处理模块,可以捕获异常,然后进行重试或者其他的操作来保证程序的运行不会进行停止

parse:一个工具模块

roborparser:主要用来识别网站的robors,txt文件,判断哪些文件可以爬

1.发送请求

使用库当中的request模块,可以方便的发送请求并回应

  • urlopen

完成了python官网页面的抓取

返回的结果为

其中返回的状态码的结果,可以观看爬虫基础

  • data

data参数是可以进行选择的,在添加该参数的时候,需要使用bytes方法将参数转换为字节流编码格式的内容,也就是bytes类型,此外,如果传递了该参数,需要使用的则为Post

这里我们传递了一个参数word,值是hello,需要将其转码为bytes类型,转码的时候采取了bytes方法,该方法传递的第一个参数为str,因此需要使用urllib.parse里面的urlencode方法将字典参数转换为字符串,第二个参数是指定编码格式

  • timeout

timeout参数设置超时时间,单位为秒,意思是如果超出了设置的这个时间,还没有得到响应,就会抛出异常

  • 其他参数

1,context参数,参数类型必须为ssl.SSLContext类,用于指定SSL的设置

2.cafile参数,用来指定CA证书

3.capath参数,指定其路径

  • Request

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

  1. url:用于请求URL,为必须传的参数
  2. data:如果要传输数据,必须为bytes类型
  3. headers:请求头
  4. origin_req_host:请求方的host名称或者IP地址
  5. univerifiable:表示请求是否是无法进行验证的,默认取值为False
  6. method:字符串,表示请求使用的方法

完整的使用

ps.其中的User-Agent代理获取方式

4.高级用法

  1. HTTPDefaultErrorHandler

: 处理 HTTP 请求中的默认错误,例如服务器返回的 404(页面未找到)或 500(服务器内部错误)等。

  1. HTTPRedirectHandler

: 处理 HTTP 重定向,例如当服务器返回 3xx 状态码时,该处理程序将根据重定向规则自动处理重定向。

  1. URLError

: 表示由于 URL 相关的错误而引发的异常,如无法解析主机名、连接超时等。

  1. HTTPError

: 表示 HTTP 请求过程中的错误,例如服务器返回了一个不在 200-299 范围内的状态码。

  1. ContentTooShortError

: 表示在进行 HTTP 请求时,返回的内容长度小于预期长度,可能意味着连接被中断或服务器未完全发送数据。

当访问某一个网页的时候,需要进行验证,那么应该怎么办呢?

  • 代理

2.异常处理

  • URLError

会输出URLError的错误

  • HTTPError
  1. code:返回状态码
  2. reason:返回错误的原因
  3. headers:返回请求头

//使用方法与上述相同,只是返回的值比上述多

//可以设置顺序,来捕获子类和父类错误的顺序

3.解析链接

  • urlparse

进行字段的解析

同时还具有三个参数

  1. urlsting:待解析的URL
  2. scheme:默认的协议
  3. allow_fragments:是否忽略fragment

返回的结果可以使用属性名获取内容,也可以使用索引进行获取(返回的值实际上为一个元组)

  • urlunparse

  • urlsplit

  • urlunsplit

  • urljoin

进行链接的解析,拼合与生成

  • urlencode

将字典类型的转换为链接参数

  • parse_qs

将一串get请求参数转回字典

  • parse_qsl

将参数转换为由元组组成的列表

  • quote

将内容转换为URL编码的格式,当URL带有中文的参数时,有可能导致乱码问题,此时使用quote方法可以将中文字符转换为URL编码

  • unquote

可以进行URL的解码

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值