re正则实战—豆瓣读书爬取
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- re正则实战---豆瓣读书爬取
- 前言
- 一、准备工具
- 二、构建请求头
- 三、请求数据
- 四、解析数据
- 五、保存数据
- 总结(源码)
前言
大家好,今天我们来写一个豆瓣读书的爬虫程序,我会只用函数来进行编写.
我们要爬取豆瓣读书新书的书名,书的图片,作者名字
爬取的目标网站:
一、准备工具
我们使用requests模块对目标网站发起请求,使用re模块对获得的数据进行处理,使用os操作系统模块进行检验保存.
requests 模块下载方法要在电脑终端cmd 中使用 pip install requests 进行下载.
如果下载失败,使用pip镜像源:
复制 pip install requests -i -https://pypi.tuna.tsinghua.edu.cn/simple 到cmd中下载.
import requests as r
import re
import os
二、构建请求头
我们在进行一个网站请求数据的时候,需要给出一些请求的数据,
这里面我们必须要给到的有用户标识符User-Agent每个人都有不同的用户标识符,我们后面也可以购买代理ip进行更改我们的用户标识符
我们进入目标网站,摁下f12 或者直接右键点击检查,我们来到一下界面
更加标注找到我们的User-Agent 给入进去.
import requests as r
import re
import os
# 目标站点
url = "https://book.douban.com/latest?subcat=%E5%85%A8%E9%83%A8"
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0'
}
在这里,我们需要把我们的用户标识符给入到headers 里面,以字典的形式传入.
当我们把请求数据必须需要的输入进去后,我们尝试开始请求数据,看是否能够成功获得数据.
三、请求数据
定义一个函数
def get_data():
response = r.get(url, headers=headers)
print(response.text)
#我们进行打印,看我们时候可以获得目标网站携带数据的原html代码
结果:
我们可以看到这里面有我们想要的书名,作者数据,证明我们已经请求到了
接下来我们开始处理这个html文档.
四、解析数据
我们上节课学习了re正则的用法,我们首先找到我们要的数据代码处,开始解析
我们找到了书名,和作者名.
# 2,解析数据
def parse_data(