解决原先乱码问题
启动命令
python3.9 main.py -l url -k keyword -P p1-pn
-l 列表地址
-k 搜索关键词
-P 页码,例如:1-10,从第一页到第10页
增加了pdf2word, 需要安装依赖
pip39 install pdfplumber xlrd xlwt pandas pdf2docx
百度文库爬虫 Baidu Wenku Spider
仅支持python3
请勿将该脚本用于下载付费文档或商业用途,否则后果自负!
本项目仅为方便查看在线文档和交流爬虫技术。
目前该项目支持所有格式文档下载。
ppt仅能保存图片格式的pdf,建议下载后通过Acrobot等光学识别软件拷贝文字;
doc、pdf文件仅能保存为pdf,且可能看起来会有一些不同;
xls文件仅能保存为pdf,未来可能会支持保存为xls;
txt可保存为原始格式。
如果需要提取图片或查看原始数据,可以带参数-t
不删除临时文件。
原理为下载网页中显示的内容,而并非原始文档,只能尽力还原格式。
目前来看,部分情况无需会员账号cookies即可下载完整文档,即使非会员账号在网页尽可查看部分文档。
要求Python3.5+,如有必要,请使用pip3和python3。
下载源码并安装依赖
git clone https://github.com/BoyInTheSun/wks.git
cd wks
pip install -r requirements.txt
python main.py --help
请下载对应系统版本的可执行程序。
在windows系统中,选择你喜欢的地方,将wks.exe
放到其中,按住shift右键,选择在此处打开powershell窗口
,输入.\wks.exe --help
查看帮助。
不要直接双击wks.exe
!!!
这是必要的步骤,如果仅能下载文档前几页,可以尝试该方法。由于接口更新,目前可能即使提供了非VIP账号的cookie也无法获取完整文档。如果使用vip账号的cookie仍无法下载,请提issue。
首先登陆百度文库,按F12
打开开发者工具,找到网络
栏,F5
刷新,找到Request URL
和地址栏相同的一项,复制Request Headers
的Cookie
的值,形如kunlunFlag=1; PSTM=1638106870; __yjs_duid=1_9d69de0379cb51aa4b48e663f9e1e6591638110590672;...
。将其保存至文件如Cookies.txt
或在下文命令行中使用字符串形式。
获取到cookies后,可以通过命令行传参或者传文件两种形式。
python main.py "https://wenku.baidu.com/view/abcd.html" -c "kunlunFlag=1; PSTM=1638106870;..."
python main.py "https://wenku.baidu.com/view/abcd.html" -C "Cookies.txt"
如果你使用了可执行文件wks.exe
,请替换上述命令中的python main.py
。
显示帮助信息并退出。
传入cookie格式字符串,使请求带cookie。
传入cookie文件,使请求带cookie。优先级低于前者。
将临时文件保存到文件夹。
指定文件名(后缀名自动生成)
指定下载和保存的页数,例如"2,6-8,10"代表下载页码"2,6,7,8,10",从"1"开始。
指定请求时User-Agent。
批量下载。传入文件名,文件中一行一个链接。
python3.9 main.py
#地址
-l https://wenku.baidu.com/gsula/sula/syncmrecall
-c 'Cookie'
#爬取关键词
-k "keyword"
#保存到文件目录
-D ./
#爬1到2页
-P 1-2
#过滤ppt文档
-filter_file_type ppt