欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > python网络爬虫开发实战之基本库使用

python网络爬虫开发实战之基本库使用

2025/3/9 10:53:54 来源:https://blog.csdn.net/zxqq_/article/details/146044974  浏览:    关键词:python网络爬虫开发实战之基本库使用

目录

第二章 基本库的使用

2.1 urllib的使用

1 发送请求

2 处理异常

3 解析链接

4 分析Robots协议

2.2 requests的使用

1 准备工作

2 实例引入

3 GET请求

4 POST请求

5 响应

6 高级用法

2.3 正则表达式

1 实例引入

2 match

3 search

4 findall

5 sub

6 compile

2.4 httpx的使用

1 示例

2 安装

3 基本使用

4 client对象

5 支持http/2.0

6 支持异步请求


第二章 基本库的使用

最基础的http包括urllib、requests、httpx。

2.1 urllib的使用

使用urllib可以实现http请求的发送,著需要指定请求的url、请求头、请求体等。此外,urllib还可以把服务器返回的响应转换为python对象。

1 发送请求

使用urllib库中的request模块,可以方便地发送请求并得到响应。

  • urlopen
import urllib.requestresponse = urllib.request.urlopen('https://www.python.org')
print(response.read().decode('utf-8'))# 利用type方法输出响应的类型
import urllib.requestresponse = urllib.request.urlopen('https://www.python.org')
print(type(response))
print(response.status)
print(response.getheaders)
print(response.getheader('Server'))# urlopen方法的API
urllib.request.urlopen(url, data=None, [timeout,]*, cafile=None, capath=None, cadefault=Flase, contexy=None)
  • data参数:可选,如果传递了这个参数,请求方式是post(模拟表单提交)。在添加该参数,需要使用bytes方法将参数转化为字节流编码格式的内容,即bytes类型。

运行结果:

  • timeout参数,设置超时时间,单位为秒。如果请求超出了设置的这个时间,还没有得到响应,就会抛出异常。如果不指定该参数,则会使用全局默认事件。

或如下:

  • 其他参数:context参数,必须是ssl.SSLContext类型,用来指定SSL的设置;cafile和capath分别用来指定CA证书和其路径;cadefault参数现在已经启用了,默认值为false。
  • request

  • 高级用法:handler,可以理解为各种处理器,包括登陆验证、处理cookie、处理代理设置。

  • 验证:适用于启用了基本身份认证的网站

  • 代理

  • cookie

获取网站的cookie:

运行结果:

(输出了每条cookie条目的名称和值)

输出文件格式的内容:

1.txt格式

2.lwp格式

通过load方法读取本地的cookie文件,获取其中内容。

2 处理异常

当出现问题时,request模块便会抛出error模块中定义的异常。

  • URLError

  • HTTPError

3 解析链接

  • urlparse

  • urlunparse

  • urlsplit

  • urlunsplit

  • urljoin

  • urlencode

  • parse_qs

  • parse_qsl

  • quote

  • unquote

4 分析Robots协议

利用urllib库的robotparser模块,可以分析网站的robots协议。

  • Robots协议

  • 爬虫名称

  • robotparser

2.2 requests的使用

1 准备工作

pip install requests

2 实例引入

3 GET请求

  • 基本实例

  • 抓取网页

  • 抓取二进制数

  • 添加请求头

4 POST请求

5 响应

6 高级用法

  • 文件上传

  • cookie设置

  • session维持

  • SSL证书验证

  • 超时设置

  • 身份认证

  • 代理设置

  • prepared request

2.3 正则表达式

1 实例引入

2 match

  • 匹配目标

  • 通用匹配

  • 贪婪与非贪婪

  • 修饰符

  • 转义匹配

3 search

4 findall

5 sub

6 compile

2.4 httpx的使用

对于强制使用http2.0协议的网站,使用urllib和requests是无法爬取数据的。这时,需要要用到支持http/2.0的请求库,比较有代表性的是hyper和httpx。

1 示例

2 安装

pip install httpx

pip install 'httpx[http2]'

3 基本使用

4 client对象

5 支持http/2.0

6 支持异步请求

来源:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词