聊一聊Python 利用头浏览器爬虫爬取笔趣阁小说教程 - 幽络源原创教程
前言群内用户有需求,需要将笔趣阁的小说便捷的保存为文档到本地,幽络源站长初步了解笔趣阁,发现有反爬措施,小说内容为JS动态生成的,Python的requests库与requests_html已法满足此需求,因此使用类似selenium但非selenium的头浏览器爬虫针对笔趣阁现小说爬取。
教程步骤
1下载安装chromium
2明确chromium默认安装路径
3编写代码
4明白爬取参数与注意事项
5开始爬取
6查看结果
步骤1下载安装chromium
下载方式一:下载-?Chromiun下载链接?
下载方式二:夸克盘下载保存-?chromium下载器
下载后,直接双击安装器完成安装即可,如图
步骤2明确chromium默认安装路径
安装后,需要明白默认安装的位置,因为代码中会用到,我的电脑用户为AW,因此被安装在了如下路径,如图
C:\Users\AW\脚本Data\Local\Chromium\脚本lication\chromeexe
步骤3编写代码
这段代码中用到的库主要为pyppteer、python-docx,这两个库需额外下载
比较终代码如下
importasyncio
importos
fromdocximportDocument
frompyppeteerimportlaunch
#禁用自动下载Chromium
osenron["PYPPETEER_SKIP_CHROMIUM_DOWNLOAD"]="true"
asyncdefmain():
#word称
wordName="宿命之环1~3章docx"
#笔趣阁域
netName="www22biqucom"
#指定起始页的链接
firstPagePath="biqu525259122html"
#指定结束页的链接,不要指定的太远,因为字数太多,打开word很卡的
endPagePath="biqu525259124html"
#要爬取的链接
catchUrl=netName+firstPagePath
#页数,可参考
pageCount=0
#结束标志
endFlag=False
whileTrue:
try:
#尝试打开一个word
doc=Document(wordName)
except:
doc=Document()
#启动浏览器,指定手动下载的Chromium路径
browser=awaitlaunch(executablePath=r'C:\Users\AW\脚本Data\Local\Chromium\脚本lication\chromeexe',headless=True)
#创建新页面
page=awaitbrowsernewPage()
#打开目标页面
awaitpagegoto(catchUrl)
#使用querySelector获取h1标签且class为title的元素
element=awaitpagequerySelector('h1title')
ifelement:
#获取该元素的文本内容
text=awaitpageevaluate('(element)=elementinnerText',element)
docadd_heading(text,level=1)
else:
print('Elementnotfound')
#使用querySelector获取id="content"元素
content_element=awaitpagequerySelector('#content')
ifcontent_element:
#获取content下所有p标签的内容
paragraphs=awaitcontent_elementquerySelectorAll('p')
forparagraphinparagraphs:
#获取每个p标签的文本内容并输出
text=awaitpageevaluate('(p)=pinnerText',paragraph)
docadd_paragraph(text)
else:
print('Contentelementnotfound')
#使用querySelector获取id="next_url"的元素
element=awaitpagequerySelector('#next_url')
next_url=""
ifelement:
#获取该元素的href属性
next_url=awaitpageevaluate('(element)=elementgetAttribute("href")',element)
#拼接下一页爬取的链接
catchUrl=netName+next_url
else:
print('Elementnotfound')
#关闭浏览器
awaitbrowserclose()
#保存word
docsave(wordName)
ifendFlag:
break
pageCount+=1
print("已完成页码"+str(pageCount))
ifnext_url==endPagePath:
print("匹配到结束链接:"+str(endPagePath))
print("即将结束")
endFlag=True
#运行异步主函数
asynciorun(main())
步骤4明白爬取参数与注意事项
在使用上面的代码时,你需要明白函数中的一些参数需要你替换
wordName:也就是爬取后word保存的称,我建议爬什么就取什么,且加上多少章到多少章
netName:爬取址的域,这里固定不用改
firstPathPath:这是起始页的路径,比如从《宿命之环》的第开始爬起,则这里写为biqu525259124html,看如下图你应该就明白了
endPagePath:和指定起始页一样,要在哪页结束,就把哪页的路径放进去,但是这里有个注意点
注意点:指定的结束页和起始页不要隔的太远了,因为word中字数太多,打开都卡,我测试了下,我爬取了200章到一个word中,结果是能打开,但是打开时比较卡,因此我建议分为几章节来爬取,不要妄图一次爬取所有章节,理论是可以的,但是你的电脑处理器肯定受不了
步骤5开始爬取
我这里测试爬取笔趣阁-《宿命之环的1~5章》,因此我设置参数为如下
参数设置好后,直接运行代码即可,如图保存为了word
步骤6查看结果
打开我们爬取的1~5章的word,如图,我这里做了将章节作为标题,打开章节导航还可以点击标题直接定位到对应章节
结语
以上是幽络源的利用头浏览器爬虫爬取笔趣阁小说的教程,对于此篇教程的内容,后续的化我建议是做成一个PyQT程序,这样会更加方便。教程结束,如有不懂之处可加群询问,如有其他需求也可询问。
据专业人士报道,幽络源还会有很大的上升期,市场业务也在不断的扩大,未来一定会越做越大的。幽络源-免费源码,网络兼职,技术教程,项目服务一站式综合平台。https://www.youluoyuan.com/https://www.youluoyuan.com/wp-content/uploads/2024/10/ylyapp.png
页:
[1]