实战案例丨如何用5行代码扒小说!
用UIBot的元素获取功能,
很轻松就能从网页上
扒到你想要的内容。
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/c184441446ee43cebf19147c21089540.png)
这里就以小说网站笔趣阁为例,
教大家怎么扒小说
1、首先用Chrome打开笔趣阁的小说,(这里随便打开的一本小说,没有任何广告嫌疑,手动狗头)
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/c38810877f7f49c1ab5b8088ae6b3e97.png)
2、我们先用获取元素文本功能,
获取小说的章节标题
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/ab9450d517404fe2bae974ba9261ba2c.png)
点击查找目标之后,把鼠标移动到浏览器小说标题的位置,获取标题元素,把获取到的文本存入变量sTitle中备用~
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/07477bb16e5c4517a88c2234793506ca.png)
3、接下来我们再来获取下小说的内容,和获取标题一样使用获取元素文本功能,把小说的内容存入变量sBody中
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/884950235b1c4447881f1cbbe354f2ba.png)
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/f2ed270733b14314ba6b000fc1206acc.png)
4、我们再新建一个变量,
把刚才获取到的标题还有内容组合一下
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/654621d447a547bd8e9aef1ed59f8541.png)
一般我们会把标题和内容之间用换行来隔开。
5、处理好标题和内容的连接后,我们把内容写入到一个文本里,并且是用追加写入,这样可以保证每次的写入不会覆盖掉上一次的内容。
这里使用到的命令是追加写入文件
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/b0d60419331648698f63199e15a837ab.png)
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/02abd39c38324327af1e5cfac19c5bad.png)
6、最后,最重要的一步来了,前面我们只是获取到当前这一章的内容,我们想要获取整本小说,拿就得用循环命令,再配合上点击下一章的操作,这样就能实现循环的把每一章内容都提取出来,最终就能把整本小说都扒下来了。
先使用鼠标点击命令,获取到【下一章】按钮的元素
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/4ff5fd220fab475ab74569947bf6d261.png)
然后我们把刚才整个过程使用循环来包起来,
这样就能实现整个提取小说的过程了
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/06208bdfd6dd4c66a39ade51e11ca607.png)
++++++++我++++++++是+++++++分+++++++++割+++++++++线++++++++
看到这里,恭喜你,
已经初步掌握了
运用UiBot扒小说的基本技能。
然鹅
这怎么能够!?
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/99af507c63104c1782995c1292224320.png)
那么,现在我们就来丰富下扒小说的功能。
上回书说道必须要打开到小说的第一章才能开始扒,不够有逼格,我们可以在此基础上加上自动搜索小说,自动进入第一章,自动开始扒,这样的工具逼格才会多一些。毕竟大文豪鲁迅先生曾经说过:有逼格的东西才能拿的出手!
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/30766d3391fb44309c7496ce0480f405.png)
1、打开笔趣阁网站的首页,用填写元素文本命令,获取到搜索框的元素,并且扒内容设置成你想要搜索的小说名。
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/38649081b07344fa9074938d86309cf5.png)
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/73ff0ca9f2f749448d97fbf54a781c32.png)
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/2601328b14a248f4b998f4122bef98f3.png)
这里我们就我们就随便填一个小说名
2、用鼠标点击命令,
获取搜索按钮,并点击
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/ebc197335fbf483d9816479008200ae3.png)
3、之后我们就可以看到小说的目录了,
我们可以继续用鼠标点击命令
去点击小说的第一章
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/ac130668f4054e7cba5de37638d9a625.png)
4、最后再把前文中
写好的代码复制上去就好啦
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/387d1816776e45809c41e0df96f4d340.png)
看到做出来的工具越来越完善了,
嘴角不禁露出了微笑
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/5a79449acd6e459bb70e9c21f895c051.png)
++++++++我++++++++是+++++++分+++++++++割+++++++++线++++++++
看到这里,用UiBot获取小说的功能
算是做的差不多了。
氮素
距离真正的实用
貌似还差那么一点点。
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/1fc0955be393472891e70cd527c41dcd.png)
要做到实用,我们还需解决这些问题:
1搜索不同关键字小说时的兼容性(搜索不到怎么办?)
2需要考虑网速差怎么办
3小说章节全部收集完成的判断
针对这些问题点
我们逐个解决:
1、提高元素采集的兼容性
用之前帖子中代码来运行会发现一个问题,用教程中的关键字搜索小说可以正常,但是换了个名字就不正常了,不会自动去点击小说的第一章开始采集。
造成这种问题的关键就在于元素的特征,我们再选择完元素之后右侧的属性面板中,可以看到有一个【目标】属性,这个就是元素的特征串,点击右边的按钮,我们可以打开这样的界面。
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/9d717f2b26354f97a5cf60a99f66c988.png)
这个就是UIBot特有的元素特征了,下面树状结构就是选择的元素的层级特征。
我们可以看到上面有一些title,aaname这样的特征,结合上后面的内容不难发现,这个就表示该元素相关的页面标题,还有该元素的具体内容。
这些元素是有助于我们进行精确的定位的,但是在这里如果精确到具体的文本的话,那兼容性就不够,其他小说的名称不同就无法匹配到,所以我们可以把title和aaname这两个选项的勾去掉,不对这两个特征进行匹配就行了。修改后记得点保存按钮。
这里只是初步的介绍下元素特征,后续还会有详细的元素特征的教程,大家可以学习后灵活的去进行修改。
2、利用元素是否存在的判断来提高兼容性
之前的脚本没有对网速慢的情况进行处理,实际上要处理是很容易的,只需要使用循环结构,在关键的地方循环判断下正确的元素是否出现,出现就表示网页正常加载,跳出循环继续即可。
第一个要判断的地方就是点击搜索按钮后页面跳转。
判断到有这种元素出现后,退出循环进行之后的采集。
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/75812ae813df4ab196d70eec15067185.png)
当判断到这种元素时
就表示搜索的结果不对
停止脚本。
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/1175c1d51265464dbf1263407b6722f5.png)
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/a53c387295df4d70b72e1885c1ff739b.png)
同样需要判断的的地方是
章节的跳转
要确保小说内容
加载成功后再开始采集
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/f566fb123d414535821c1e117e32400c.png)
3、最后一步就是当采集完最后一章时能自动结束。
不难发现我们再最后一章的时候继续点击下一章的时候,会跳回小说的目录页面,我们可以通过判断目录元素是否存在来判断小说是否采集完毕了。
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/40076be0b15847ba964e6f9c06a8f130.png)
至此,我们圆满完成了
扒小说的任务!
![_【新闻】实战案例丨如何用5行代码扒小说!](https://res.laiye.com/LaiYeProduction/News/20210909/ac6426a17ad14c3b9c2eaa2e0a39bec3.png)