UiBot实战案例—只要5行代码就能扒小说!?(三)
上两篇帖子已经把获取小说的功能做的差不多了,但是...距离真正的实用还差那么一点点。
想要做到实用,拿我们还差这些问题需要解决:
1、搜索不同关键字小说时的兼容性(搜索不到怎么办?)
2、需要考虑网速差怎么办
3、小说章节全部收集完成的判断。
针对这些问题点,我们逐个解决:
1、提高元素采集的兼容性:
用之前帖子中代码来运行会发现一个问题,用教程中的关键字搜索小说可以正常,但是换了个名字就不正常了,不会自动去点击小说的第一章开始采集。
造成这种问题的关键就在于元素的特征,我们再选择完元素之后右侧的属性面板中,可以看到有一个【目标】属性,这个就是元素的特征串,点击右边的按钮,我们可以打开这样的界面
这个就是UIBot特有的元素特征了,下面树状结构就是选择的元素的层级特征。
我们可以看到上面有一些title,aaname这样的特征,结合上后面的内容不难发现,这个就表示该元素相关的页面标题,还有该元素的具体内容。
这些元素是有助于我们进行精确的定位的,但是在这里如果精确到具体的文本的话,那兼容性就不够,其他小说的名称不同就无法匹配到,所以我们可以把title和aaname这两个选项的勾去掉,不对这两个特征进行匹配就行了。修改后记得点保存按钮。
这里只是初步的介绍下元素特征,后续还会有详细的元素特征的教程,大家可以学习后灵活的去进行修改。
2、利用元素是否存在的判断来提高兼容性:
之前的脚本没有对网速慢的情况进行处理,实际上要处理是很容易的,只需要使用循环结构,在关键的地方循环判断下正确的元素是否出现,出现就表示网页正常加载,跳出循环继续即可。
第一个要判断的地方就是点击搜索按钮后页面跳转
判断到有这种元素出现后,退出循环进行之后的采集
当判断到这种元素时就表示搜索的结果不对,停止脚本。
同样需要判断的的地方是章节的跳转,要确保小说内容加载成功后再开始采集
3、最后一步就是当采集完最后一章时能自动结束。
不难发现我们再最后一章的时候继续点击下一章的时候,会跳回小说的目录页面,
我们可以通过判断目录元素是否存在来判断小说是否采集完毕了
只要5行代码就能扒小说!?(一):https://forum.uibot.com.cn/thread-29.htm
只要5行代码就能扒小说!?(二):https://forum.uibot.com.cn/thread-30.htm