python做简单爬虫的一些常用组件

文章目录

前言

最近一直在做零散的一次性的爬虫工作,基本都是用python开发的,整理一下python做小规模爬虫开发常用的一些工具类

request

python最简单的发http请求的包,request.get和request.post就可以搞定绝大部分的抓取需求了,postman也提供直接把请求转成request代码的功能

python 复制代码
import requests

url = "https://www.who.int/publications/i/item/9789240087002"

payload = {}
headers = {
  'Cookie': '_cfuvid=ckXDZTR8JfnelALNiB3ROmqSzyj13jtX.4WlS8zKHSw-1722239912266-0.0.1.1-604800000'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

json

类似java里的fastjson包,可以把map对象和json字符串相互转换,转换方法为json.loads(把json字符串转成map对象)和json.dumps(把map对象转成json字符串)

python 复制代码
import json
dict_test={"key":"这是一个测试map"}
text_test=json.dumps(dict_test,ensure_ascii=False)
print(text_test)
dict_test2=json.loads(text_test)
print(dict_test2)

注意json.dumps如果要转换中文的话加一个ensure_ascii=False,要不然结果就会是这样

bs4

bs4是一个做html和xml树解析的包,使用如下

python 复制代码
from bs4 import BeautifulSoup
html=BeautifulSoup(response.text)
html.find_all("div",class_="")

直接构建一个BeatifulSoup对象之后用find函数就可以定位到对应元素(组)

相关推荐
在繁华处3 分钟前
Java从零到熟练(十一):Spring框架入门
java·开发语言·spring
十五年专注C++开发5 分钟前
cereal 库:C++ 序列化的轻量之选
开发语言·c++·序列化·反序列化·cereal
星卯教育tony26 分钟前
2026年全国青少年信息素养大赛主题应用 数字守艺人 丝路新城 星火征程 智传民韵 c++ python scratch 所有真题免费分享
开发语言·c++
z落落37 分钟前
C# 继承:父子构造函数 + base 关键字 +五大访问修饰符(同项目+跨项目 全覆盖)
开发语言·c#
Metaphor69244 分钟前
使用 Python 在 Excel 中查找并高亮显示
python·信息可视化·excel
day day day ...1 小时前
MyBatis / MyBatis-Plus 动态 SQL 中 OGNL 表达式的常见陷阱与源码分析
java·开发语言·mybatis
basketball6161 小时前
C++ bitset 头文件完全指南
开发语言·c++
Kiling_07041 小时前
Java IO流:字节流实战与性能优化
java·开发语言·php
糯米团子7491 小时前
javascript高频知识点
开发语言·前端·javascript
旦莫1 小时前
AI测试Agent的两种架构路径:谁做主控?
人工智能·python·架构·自动化·ai测试