集搜客网页抓取软件(集搜客GooSeeker爬虫术语“主题”统一改为“任务” )
优采云 发布时间: 2021-11-20 18:21集搜客网页抓取软件(集搜客GooSeeker爬虫术语“主题”统一改为“任务”
)
注:极手客的GooSeeker爬虫从V9.0.2版本开始。爬虫术语“主题”统一改为“任务”。在爬虫浏览器中,先命名任务,然后创建规则,然后登录采集。在搜客官网会员中心的“任务管理”中,可以查看任务采集的执行状态,管理线程URL,进行调度设置。
一、什么情况下需要自定义xpath?
二、自定义数据的xpath采集规则
XPath 是一串 html 节点,在它们之间使用/划分以定位 html 中的某个信息节点。从XPath的前端节点开始,在html的DOM树上逐层找到某个节点(参考MS MDS的网页结构窗口),这个节点就是XPath的定位结果。XPath 还可以定位一个节点或多个节点的集合,并添加一些函数来计算布尔值。
整理盒就像一个盒子,里面可以存放很多爬取的内容(见下图右侧)。代表这个盒子的那个叫做容器节点。它是创建整理框时自动生成的第一个容器节点,在它下面可以构建爬取内容的树状结构。排序框的作用是在网页上限定一个范围,所有爬取的内容都在这个范围内。例如,在下图的左侧,顶部的 DIV 用于分隔网页范围。该范围通常是自动生成的,但可以通过定位容器节点或复制示例地图来更改所选网页范围。
这个带分隔符的 DIV 是一个基点。用于抓取整理框内内容的 XPath 表达式都位于此基点。所以,内部XPath都写成相对定位表达式,比如./div/... .或者div/span/...或者*//*[@class='title']/...,它不会写成绝对定位表达式,比如/html/body/..... 或者 //div /span/.... 因为这种格式是基于网页的最高节点(html),所以不以 / 符号开头。
所以必须保证一个原则:自定义xpath是相对于基点的,基点是容器节点的xpath,内部爬取内容的xpath路径是相对于它定义的。在编写自定义 XPath 时,尽量不要使用它。绝对 XPath 定位表达式(即以 / 或 // 开头的那种)。
下面以百度新闻为例,讲解如何自定义xpath。点击下载本案规则:百度新闻搜索结果
2.1 建立排序框,对爬取的内容做内容映射。最好做位置标记映射,提高定位精度;这里需要采集整个搜索结果列表,同时还要对容器节点“列”进行样本复制映射或定位标记映射,以捕获多个样本。至此,规则的定义已经完成。
2.2 单击测试。在输出信息窗口中,可以看到有些结果的摘要信息没有被捕获,说明摘要的网页结构不同。对于多个结构,我们可以按照以下2.3、2.4、2.5、2.6个步骤来分析。
2.3 查看数据规则,每个爬取的内容都会有几个可选的xpath路径。自定义xpath时,只需要使用第一个XPath进行变换即可。将双引号之间的xpath 路径复制到显示XPath 搜索框(不包括*)。其中*表示任意节点,//表示从当前节点开始的任意层级节点,不明白的请掌握《XPath基础知识》。
2.4 XPath搜索框可用于获取节点的xpath、验证xpath语法、检查xpath是否定位准确等,当xpath语法正确且有节点时,点击搜索框和节点的总数和位置将被计算在内。点击最后一项,可以一一查看节点信息。
2.5 上面只有15个摘要节点,但实际上有20个摘要,所以需要找到摘要的另一个节点结构。点击网页上没有捕捉到的摘要信息,就会定位到一个dom节点。根据节点的情况选择“show XPath***”模式,然后会生成该节点的xpath,然后搜索碰巧漏掉的位置。5 个摘要节点表明这是我们正在寻找的另一种结构。
注意:获取内容的xpath是基于容器节点的相对路径,所以不要选择绝对定位,最好生成一个较短的xpath路径,这样更适用。
2.6 经过上面的分析,summary的两种结构是:没有图片的xpath是//*[@class='c-summary c-row'],有图片的xpath是//* [@class='c-span18 c-span-last'] 或 //*[@class='c-summary c-row c-gap-top-small'],根据两种结构的异同找到20个汇总信息的xpath,这里写 //*[contains(@class,'c-summary c-row')] 或 //*[@class='c-summary c-row'] | // *[@class='c-span18 c-span-last'],全部搜索。
2.7 然后需要在爬取内容的高级设置中自定义xpath,操作:双击爬取内容“摘要”,勾选高级设置,选择自定义xpath,选择文本内容和专用定位,抓取content 表达式用点填充,然后粘贴上面写的xpath,定位表达式用点填充,最后保存。
注意:圆点表示从当前路径开始。上面的xpath收录在容器节点的基点范围内。添加点表示更精确的范围。另外,定位模式一般不会选择网页片段,否则采集会带着html编码的信息下来,不利于后期的处理和分析。
2.8 保存规则后,再次加载规则,错误提示定位失败。由于百度搜索页面是实时变化的,第一个搜索结果缺少同新闻同新闻链接,所以看到定位失败的提示,但是只要规则仍然可以采集获取数据,则表示规则仍然有效,不需要修改规则。如果想彻底解决这种网页变化导致部分信息丢失的情况,需要自定义xpath,否则定位失败。前提是找到一个信息比较完整的样例页面来制定规则。
2.9 点击相同的新闻信息,找到它所在的页面节点,然后选择“Show XPath***”模式获取其xpath表达式,然后点击搜索查看。
2.10 对于这种只存在于某些网页中的信息,自定义xpath时只能选择专用定位。将上面的xpath复制到爬取内容表达式中,并填写定位标志表达式。正好。
注意:设置自定义xpath的爬取内容后,还需要进行内容映射。您可以选择排序框中的任何节点以映射到它。
2.11 单击Test,如果没有错误,您将在输出信息窗口中看到数据。如果抓到空白信息,说明xpath不是以容器节点的xpath路径开头,需要重写。如果看到下图的提示,说明xpath有语法错误。请验证 xpath 语法。
自定义xpath不仅有以上用法,还可以准确定位、过滤信息、拼接字符串等,具体请参考《XPath常用函数用法》。
专用定位和两用定位的区别请见
三、自定义爬虫路由的xpath
爬虫路由通常用于设置下级线索和点击。常规爬虫路线只能一键设置。请看它和连续动作的区别。
解决循环点击的情况有两种方法,如下:
四、为连续动作自定义xpath
连续动作可以设置多个连续动作,包括点击、悬停、输入、滚动、提交、选择等动作。功能是模拟人机交互,获取目标信息。连续动作教程参见《连续动作的概念:掌握JS动态网页信息采集》
注意:连续动作 xpath 支持绝对路径和相对路径。请根据实际网页情况编写action对象的xpath。
如有疑问,您可以或