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

Python精选200Tips:121-125

Spend your time on self-improvement

  • 121 Requests - 简化的 HTTP 请求处理
        • 发送 GET 请求
        • 发送 POST 请求
        • 发送 PUT 请求
        • 发送 DELETE 请求
        • 会话管理
        • 处理超时
        • 文件上传
  • 122 Beautiful Soup - 网页解析和抓取
        • 解析 HTML 和 XML 文档
        • 查找单个标签
        • 查找多个标签
        • 使用 CSS 选择器查找标签
        • 提取文本
        • 修改文档内容
        • 删除标签
        • 处理 XML 文档
  • 123 Scrapy - 强大的网络爬虫框架
        • 示例:爬取名言网站,提取名言、作者和标签
          • (1) 创建 Scrapy 项目
          • (2) 定义 Item
          • (2) 创建 Pipeline
          • (3) 创建爬虫
          • (4) 配置 Settings
          • (5) 运行爬虫
          • (6) 结果
  • 124 jsonschema - JSON 数据验证工具
        • 数据验证
        • 错误处理
  • 125 Selenium - 自动化 Web 浏览器的工具
        • 示例:打开网页并提取数据

运行系统:macOS Sonoma 14.6.1
Python编译器:PyCharm 2024.1.4 (Community Edition)
Python版本:3.12

往期链接:

1-5 6-10 11-20 21-30 31-40 41-50
51-60:函数 61-70:类 71-80:编程范式及设计模式
81-90:Python编码规范 91-100:Python自带常用模块-1
101-105:Python自带模块-2 106-110:Python自带模块-3
111-115:Python常用第三方包-频繁使用 116-120:Python常用第三方包-深度学习

本文只介绍每个包主要做什么及一些比较经典的示例。对于包的进一步学习,推荐参考对应包的官方文档。

121 Requests - 简化的 HTTP 请求处理

Requests版本2.32.3,官方文档

Requests 模块是一个用于发送 HTTP 请求的 Python 库,它非常易于使用,可以处理各种类型的网络请求。以下是 Requests 模块的主要功能说明以及相应的示例。

发送 GET 请求

用于获取资源。

import requests

response = requests.get('https://jsonplaceholder.typicode.com/posts')
print("Status Code:", response.status_code)
print("Response Body:", response.json())
发送 POST 请求

用于提交数据到服务器。

import requests

data = {
   
    'title': 'foo',
    'body': 'bar',
    'userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print("Status Code:", response.status_code)
print("Response Body:", response.json())
发送 PUT 请求

用于更新资源。

import requests

data = {
   
    'id': 1,
    'title': 'updated title',
    'body': 'updated body',
    'userId': 1
}
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=data)
print("Status Code:", response.status_code)
print("Response Body:", response.json())
发送 DELETE 请求

用于删除资源。

import requests

response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print("Status Code:", response.status_code)
会话管理

可以使用会话对象来保持某些参数(如 cookies)在请求之间共享。

import requests

session = requests.Session()
session.auth = ('user', 'pass')

response = session.get('https://httpbin.org/basic-auth/user/pass')
print(response.status_code)
print(response.json())
处理超时

可以设置请求的超时时间。

import requests

try:
    response = requests.get('https://jsonplaceholder.typicode.com/posts', timeout=1)
    print("Response Body:", response.json())
except requests.exceptions.Timeout:
    print("The request timed out.")
文件上传

支持文件上传功能。

import requests

files = {
   'file': open('test.txt', 'rb')}
response = requests.post('https://httpbin.org/post', files=files)
print("Upload Response:", response.json())

122 Beautiful Soup - 网页解析和抓取

Beautiful Soup版本4.12.3,官方文档, lxml版本5.3.0, html5lib版本1.1
Beautiful Soup 是一个用于从 HTML 和 XML 文件中提取数据的 Python 库。它提供了 Pythonic 的接口来处理网页抓取和解析,方便用户提取和操作数据。以下是 Beautiful Soup 模块的功能点说明以及对应的示例。

解析 HTML 和 XML 文档
from bs4 import BeautifulSoup

html_doc = """
<html>
<head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">Once upon a time there were three little sisters; and their names were 
<a href=

http://www.kler.cn/news/307218.html

相关文章:

  • Spring Boot集成Akka Cluster实现在分布式节点中执行任务
  • Android中如何处理运行时权限?
  • 02 信念·组织力·战略 - 目标管理
  • [OpenCV] 数字图像处理 C++ 学习——15像素重映射(cv::remap) 附完整代码
  • 数据中台建设(六)—— 数据资产管理
  • uniapp 携带网址跳转webview页面报错解决
  • tp6.0.8反序列化漏洞的一些看法
  • Redis详细解析
  • (c++)猜数字(含根据当前时间生成伪随机数代码)
  • C++ Primer Plus(速记版)-面向对象与泛型编程
  • 浅谈 React Fiber
  • 关于less的基本使用
  • 【 html+css 绚丽Loading 】000050 乾坤合璧轮
  • 常用 Git 命令
  • c++ #include <string> 介绍
  • Java 之 IO流
  • Java读取寄存器数据的方法
  • memo和useMemo的区别
  • Js中的pick函数
  • 【Python基础】Python 装饰器(优雅的代码增强工具)
  • 如何通过Chrome浏览器轻松获取视频网站的TS文件
  • 什么是交换机级联?
  • 使用Python生成多种不同类型的Excel图表
  • HTML5元素定位
  • 小米,B站网络安全岗位笔试题目+答案
  • 借老系统重构我准备写个OpenAPI3.1版的API管理工具(附录屏演示)
  • 快手自研Spark向量化引擎正式发布,性能提升200%
  • MySQL基础(11)- 创建管理表
  • bug 记录 - animation 在 IOS机型掉帧情况
  • Web安全之HTTPS调用详解和证书说明案例示范