当前位置: 首页 > news >正文

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.request

response = urllib.request.urlopen('https://www.python.org')
print(response.read().decode('utf-8'))

# 利用type方法输出响应的类型
import urllib.request

response = 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 支持异步请求

来源:

相关文章:

  • 基于qt的桌面宠物——纳西妲源码纯享
  • CS144 Lab Checkpoint 5: down the stack (the network interface)
  • http status是什么?常见的http状态码指的是什么意思?
  • FPGA开发,使用Deepseek V3还是R1(9):FPGA的全流程(详细版)
  • C语言_图书管理系统_借阅系统管理
  • 极狐GitLab 17.9 正式发布,40+ DevSecOps 重点功能解读【三】
  • 毕业项目推荐:基于yolov8/yolov5/yolo11的暴力行为检测识别系统(python+卷积神经网络)
  • C# Unity 唐老狮 No.6 模拟面试题
  • DRMPlaneType里有VIG, DMA,和RGB三种类型,这是不是说明DRMPlane就是代表DPU里的Pipeline
  • ESP32S3读取数字麦克风INMP441的音频数据
  • 尚庭公寓项目记录
  • el-tree右键节点动态位置展示菜单;el-tree的节点图片动态根据节点属性color改变背景色;加遮罩层(opacity)
  • 数据挖掘校招面经一
  • 算法比赛中处理输入和输出
  • rabbitmq版本升级并部署高可用
  • JDBC、MyBatis 、MyBatis-Plus面试总结(一)
  • 【第14节】C++设计模式(行为模式)-Strategy (策略)模式
  • Spring Boot WebFlux 中 WebSocket 生命周期解析
  • 小程序分类页面
  • 字符串(三)14. 最长公共前缀 简单
  • 网站推送/优化神马排名软件
  • 做谱的网站/如何把网站推广出去
  • 关于酒店网站规划建设方案书/seo的搜索排名影响因素有哪些
  • 网站关键词优化推广哪家快/百度下载正版
  • 郑州网站的优化/女教师遭网课入侵直播录屏曝光8
  • 网站的总体方案/上海网络推广排名公司