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函数就可以定位到对应元素(组)

相关推荐
wanderist.18 分钟前
Lambda表达式在算法竞赛中的应用
java·开发语言·算法
chenment1 小时前
ComfyUI 自定义节点开发:从零扩展你的图像生成工作流
python·stable diffusion
海天鹰1 小时前
PHP上传文件
android·开发语言·php
互联网中的一颗神经元2 小时前
小白python入门 - 25. SQL 与表设计入门
数据库·python·sql
Yeauty3 小时前
渲染成图再 CLI 拼接,还是进程内直推?Rust 帧到视频的两条路
开发语言·rust·音视频
geovindu3 小时前
CSharp: Breadth First Search Algorithm and Depth First Search Algorithm
开发语言·后端·算法·c#·.net·搜索算法
RSTJ_16253 小时前
PYTHON+AI LLM DAY ONE HUNDRED AND EIGHTEEN
python
开源量化GO3 小时前
近期量化学习路径,交易理解和技术实现要接上
人工智能·python
库克克4 小时前
【C++】set 与multiset
开发语言·c++
Wang's Blog4 小时前
Go-Zero项目开发34: 微服务超时控制与重试机制实践
开发语言·微服务·golang·go-zero