有很多同学后台私信说出一期 批量抓取博主csdn
文章 相关的案例教程,要求:
这个案例与之前的csdn案例1有所不同,案例1是根据收集好的文章id去抓取,这次的案例是抓取指定博主的csdn全部文章,该案例修复了案例1中存在已知问题,是案例1的升级版;
案例1版本文章链接如下:
批量下载csdn文章-案例1
到官网下载 python 3.8.x
版本安装包,根据提示安装(windows
请勾选添加环境变量复选框)
注意:
python
是3.8.x
,不能是3.9+
安装阿里云镜像源加速:
如果安装完python
下载依赖包特别慢,请配置阿里镜像源
pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/
def start_requests(page, username):
print(f"开始请求第{page}页...")
...
def read_urls():
tool.create_or_clear_folder("./html")
config.set_config()
with open(r"./urls.csv", "r", encoding="utf-8") as file:
urls = file.readlines()
for url in urls:
url = url.replace('\n', '').replace(r" ", '')
parsed_url = urlparse(url)
username = parsed_url.path.split('/')[1]
print(f"开始抓取的url为:{url}")
start_requests(1, username)
if __name__ == '__main__':
read_urls()
安装项目依赖库:
pip install bs4
python3 main.py
urls.csv
: 需要爬取的文章链接,点开 urls.csv
中的一个链接看一下就知道什么意思了,如果需要爬取多个博主的文章,每个博主的链接单独放一行即可;
html
: 项目允许时会在当前目录下新建一个 html
文件夹,抓取的所有文章都在该文件夹中;
dist
: 打包成 exe
所输出文件夹;
打包成exe
使用工具pyinstaller
,如果对这个库不熟悉的同学可以到我的主页查看历史分享:
pyinstaller -F -c main.py (没有 main.spec 文件用此命令)
或者
pyinstaller main.spec (有 main.spec 文件用此命令)
urls.csv
文件中的放入两个待爬博主文章链接
https://blog.csdn.net/wtswts1232?type=blog
https://blog.csdn.net/dyk11111?type=blog
运行日志:
防止爬取太快被拉黑,请设置请求延迟区间(请求时根据输入的区间随机延迟n秒)
请输入延迟区间的开始时间(默认请回车): 1
请输入延迟区间的结束时间(默认请回车): 2
输入获取的页码数(回车默认-1获取全部): 1
开始抓取的url为:https://blog.csdn.net/wtswts1232?type=blog
开始请求第1页...
开始抓取: 第1页-第1篇-《2023华为od机考题库(C++)【A卷+B卷+C卷+D卷】》
开始抓取: 第1页-第2篇-《2023华为od机考 Python【A卷+B卷+C卷+D卷】》
开始抓取: 第1页-第3篇-《2023年华为OD机试最新题库(A卷&B卷&C卷&D卷)》
开始抓取: 第1页-第4篇-《2023华为OD机试真题【计算数组中心位置】【Java Python C++】》
开始抓取: 第1页-第5篇-《2023华为OD机试真题【区间交叠_贪心算法】【Python Java C++】》
开始抓取: 第1页-第6篇-《华为od机考 Python 【中位数】》
开始抓取: 第1页-第7篇-《华为od机考 C++ 【中位数】》
开始抓取: 第1页-第8篇-《华为od机考 Java 【中位数】》
开始抓取: 第1页-第9篇-《华为OD机试 C++【电梯序列】》
开始抓取: 第1页-第10篇-《华为OD机试 Python【电梯序列】》
开始抓取: 第1页-第11篇-《华为OD机试 Java【电梯序列】》
开始抓取: 第1页-第12篇-《华为OD机考 C++ 【公共字符串】》
开始抓取: 第1页-第13篇-《华为OD机考 python 【公共字符串】》
开始抓取: 第1页-第14篇-《华为OD机考 Java 【公共字符串】》
开始抓取: 第1页-第15篇-《华为od机考 C++ 【整理组合方式】》
开始抓取: 第1页-第16篇-《华为od机考 Python 【整理组合方式】》
开始抓取: 第1页-第17篇-《华为od机考 Java 【整理组合方式】》
开始抓取: 第1页-第18篇-《华为OD机考 C++ 【计算返回时间】》
开始抓取: 第1页-第19篇-《华为OD机考 Python 【计算返回时间】》
开始抓取: 第1页-第20篇-《华为OD机考 Java 【计算返回时间】》
共有34页:
触发调试配置的最大页码数1,已停止对当前链接的抓取!
开始抓取的url为:https://blog.csdn.net/dyk11111?type=blog
开始请求第1页...
开始抓取: 第1页-第1篇-《前端(二十五)——前端实现 OCR 图文识别的详细步骤与示例代码》
开始抓取: 第1页-第2篇-《优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. .运算符》
开始抓取: 第1页-第3篇-《前端(十八)——gitee上开源一个移动端礼盒商城项目(前端+后台)》
开始抓取: 第1页-第4篇-《echarts在vue3中的使用——其他页面跳转回echarts图表页面时,不显示图表的问题》
开始抓取: 第1页-第5篇-《echarts的xAxis和yAxis——x轴y轴以及网格线的详细配置》
开始抓取: 第1页-第6篇-《中级程序员——vue3+js+git面试题》
开始抓取: 第1页-第7篇-《中级程序员——uniapp和小程序面试题》
开始抓取: 第1页-第8篇-《echarts的图表立体感——实现立体柱状图和立体饼图的详细教程》
开始抓取: 第1页-第9篇-《前端(二十七)——封装指南:Axios接口、常用功能、Vue和React中的封装技术》
开始抓取: 第1页-第10篇-《前端(二十六)——常见的HTTP异常状态码以及正反向代理配置》
开始抓取: 第1页-第11篇-《在uni-app中使用ECharts - 配置四种不同的图表》
开始抓取: 第1页-第12篇-《深度理解事件流和DOM事件流的工作原理》
开始抓取: 第1页-第13篇-《前端(二十四)——轮询与 WebSocket的battle》
开始抓取: 第1页-第14篇-《前端(二十三)——轮询和长轮询》
开始抓取: 第1页-第15篇-《前端(二十二)——前端工程化》
开始抓取: 第1页-第16篇-《前端(二十一)——WebSocket:实现实时双向数据传输的Web通信协议》
开始抓取: 第1页-第17篇-《前端(二十)——Vite和Webpack:前端开发中常用的构建工具》
开始抓取: 第1页-第18篇-《前端(十九)——vue_react脚手架的搭建方式》
开始抓取: 第1页-第19篇-《优雅而高效的JavaScript——try...catch语句(js异常处理)》
开始抓取: 第1页-第20篇-《优雅而高效——立即执行函数表达式()();》
共有8页:
触发调试配置的最大页码数1,已停止对当前链接的抓取!
本代码是在 mac
系统上开发的,如果在 windows
系统中运行报了目录相关的异常,请按照 windows
系统目录规则修改相关路径即可,常规修改方式“/”
修改为“\\”
,网上很多相关帖子,可自行搜索。
完整代码、项目说明文档、爬取结果数据csv
文件、exe
文件都放入源码包中;文章最后可获取;
爱学习的小伙伴,本次案例的完整源码,已上传微信公众号“一个努力奔跑的snail”,后台回复 csdn2 即可获取。