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

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-56-1011-2021-3031-4041-50
51-60:函数61-70:类71-80:编程范式及设计模式
81-90:Python编码规范91-100:Python自带常用模块-1
101-105:Python自带模块-2106-110:Python自带模块-3
111-115:Python常用第三方包-频繁使用116-120:Python常用第三方包-深度学习

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

121 Requests - 简化的 HTTP 请求处理

Requests版本2.32.3,官方文档

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

发送 GET 请求

用于获取资源。

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

用于提交数据到服务器。

import requestsdata = {'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 requestsdata = {'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 requestsresponse = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print("Status Code:", response.status_code)
会话管理

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

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

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

import requeststry: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 requestsfiles = {'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 BeautifulSouphtml_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=

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Unity-Transform-坐标转换
  • Prometheus+grafana+kafka_exporter监控kafka运行情况
  • Python酷库之旅-第三方库Pandas(117)
  • 人工智能在现代科技中的应用和未来发展趋势
  • 微信小程序中巧妙使用 wx:if 和 catchtouchmove 实现弹窗禁止页面滑动功能
  • git命令行基础常用指令
  • 嵌入式通信原理—SPI总线通信原理与应用
  • Python数据分析及可视化教程--商城订单为例-适用电商相关进行数据分析---亲测可用!!!!
  • 【AI大模型】ChatGPT模型原理介绍(下)
  • 【ESP32】ESP-IDF开发 | GPIO通用输入输出+LED点灯和按键输入例程
  • Java小区物业管理系统
  • JDK动态代理和CGLIB动态代理有什么区别?
  • 鸿蒙开发之ArkTS 基础三 数组
  • 国际商城系统怎么弄 跨境电商商城怎样上线
  • 网络安全产品认证证书大全(持续更新...)
  • ----------
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Cookie 在前端中的实践
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript创建对象的四种方式
  • js面向对象
  • Nacos系列:Nacos的Java SDK使用
  • Netty源码解析1-Buffer
  • Shadow DOM 内部构造及如何构建独立组件
  • springboot_database项目介绍
  • STAR法则
  • vuex 笔记整理
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 设计模式走一遍---观察者模式
  • 深入浏览器事件循环的本质
  • 使用putty远程连接linux
  • 微信小程序--------语音识别(前端自己也能玩)
  • 译自由幺半群
  • ​【已解决】npm install​卡主不动的情况
  • #LLM入门|Prompt#3.3_存储_Memory
  • #QT(智能家居界面-界面切换)
  • #宝哥教你#查看jquery绑定的事件函数
  • $.ajax中的eval及dataType
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (ZT)薛涌:谈贫说富
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (十八)Flink CEP 详解
  • (一)SpringBoot3---尚硅谷总结
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • *2 echo、printf、mkdir命令的应用
  • .dwp和.webpart的区别
  • .Net各种迷惑命名解释
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .net中的Queue和Stack
  • /tmp目录下出现system-private文件夹解决方法
  • @html.ActionLink的几种参数格式
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析