前言:因同学需要几篇文库资料,但又没下载币,用的次数不多,买个vip太浪费,就考虑用代码解决一下。网上找了一些资料,不知是不是被度娘过滤了,没找到合适能用的,就自己写了点代码。
声明:该文章方法仅用于小量的、非商业用途的资料爬取,支持正版,保护百度文库版权,如果需要下载的量大,建议购买VIP会员。
语言:Pythhon
所需要安装的库:selenium、docx、time、浏览器FireFox(如果用google浏览器,更换一下浏览器驱动)
#所需要导入的库
import time
from selenium import webdriver
import docx
file=docx.Document()
#获得火狐浏览器驱动
driver = webdriver.Firefox()
#文章链接
url = 'https://wenku.baidu.com/view/5cb015eea48da0116c175f0e7cd184254b351b82'
driver.get(url)
#防止网速过慢,休眠5秒
time.sleep(5)
#以下两行为解决文章超过三页时,出现折叠,需要先展开
element = driver.find_element_by_css_selector('p[class*="down-arrow"]')
driver.execute_script("arguments[0].click();", element)
#防止网速过慢,休眠5秒
time.sleep(5)
result_list = driver.find_elements_by_class_name('reader-word-layer')
for i in result_list:
text = i.text
file.add_paragraph(text)#写入word文档
print(text)#在控制台上看效果
#docx文档保存位置
file.save("D:\\A_WorkSpace\\Python\\py_workspace\\work\\baidu_download\\writeResult.docx")
因为只是个人偶尔不常使用百度文库,所以代码只做了爬取doc文档,暂没考虑ppt、PDF等其他。
代码不足在于,由于时间仓促,没进行文docx文章格式排版,只能爬取到文字内容,需要自己整理排版,排版也好排,通过docx库对文章进行排版。
(尊重笔者的劳动哦,转载请注明出处哦。)