7 11135

为什么连续动作不起作用?

jfstip 于 2016-12-25 15:52 发表 [复制链接]
管理员好!我做了一个共有7级主题的抓取规则。这7级的主题名分别是:
第一级:patent_get_url_bt
第二级:patent_spread_more_bt
第三级:patent_open_details_bt
第四级:patent_application_fulltext_bt
第五级:patent_authorization_spread_more_bt
第六级:patent_authorization_details_bt
第七级:patent_authorization_fulltext_bt
从第二级到第三级和从第五级到第六级使用的是连续动作,连续动作的作用是点击展开“更多著录项目”。如图是网页上“更多著录项目”默认缩起和展开后的效果。
1.png 2.png
经实测,在抓取进行到第二级的连续动作时,就走不下去了,一直卡在那里。
QQ截图20161225141108.png
我不知道是哪里错了,麻烦帮看下,谢谢!
举报 使用道具
| 回复

共 7 个关于本帖的回复 最后回复于 2016-12-27 09:38

Fuller 管理员 发表于 2016-12-25 20:52:42 | 显示全部楼层
第二级我加载检查了,如图

dianjifangfa.png

高级设置里面,不要勾选“模拟点击”就可以了。

另外,你写的定位XPath是绝对定位,虽然也可以,但是适应性会差一些,最好用相对定位。选中这个点击位置后,点击“显示XPath:偏好class”,就能生成一个比较短的XPath,可以点击“查询”按钮,看看是否能唯一定位。这样改虽然不影响这个规则的执行,但是可以提高适应性
举报 使用道具
jfstip 初级会员 发表于 2016-12-26 10:00:29 | 显示全部楼层
Fuller 发表于 2016-12-25 20:52
第二级我加载检查了,如图

已经可以了,谢谢!
举报 使用道具
jfstip 初级会员 发表于 2016-12-26 13:36:18 | 显示全部楼层
还有个问题。现在去掉模拟点击,可以成功展开缩起的网页部分了,但是紧接着就报“匹配失败”, 1.jpg 该线索也一直显示为抓取中状态。 2.jpg 我把日志里失败的线索id加载到谋数台中,显示的还是第二级的抓取主题,感觉是没有成功调用第三级主题。不知问题出在哪里。麻烦再帮看看,谢谢!
举报 使用道具
xandy 论坛元老 发表于 2016-12-26 15:07:07 | 显示全部楼层
本帖最后由 xandy 于 2016-12-26 15:08 编辑
jfstip 发表于 2016-12-26 13:36
还有个问题。现在去掉模拟点击,可以成功展开缩起的网页部分了,但是紧接着就报“匹配失败”,该线索也一直 ...

第三级主题名下没必要做两个规则。
专利详情有这这种结构:
一个是两页签的,
  1. http://so.baiten.cn/detail/patentdetail/15/CN201410621540.1/7
复制代码
一个是四页签的,
  1. http://so.baiten.cn/detail/patentdetail/15/CN200410049720.3/10
复制代码
你在第三级主题名下定义分别定义了两个规则,因为这两种页面的“申请全文”不在同一个位置上,这种思路也可以,但是你定义的第三级目标主题名下的这两个规则没有用关键词区别,你里头的采集内容全部勾上了关键内容,这是不对的。

而且也没必要定义两个规则,虽然视觉上这两种网页的“申请全文“不在同一个位置,但是网页结构上,它们的位置是一样的,用下面这个xpath都搜索的到。
  1. //*[@id='pd-d-c-n-i-ftLink']/text()
复制代码
16-12-26 二页签页面点击1.jpg
16-12-26 二页签页面点击2.jpg
所以,第三级建立一个采集规则就行了,然后点击动作用连续动作中的”点击“来实现,因为爬虫路线中的记号线索不能自定义xpath,但连续动作中的点击可以,这样能够提高定位的精确和适应度。

举报 使用道具
jfstip 初级会员 发表于 2016-12-27 09:30:11 | 显示全部楼层
xandy 发表于 2016-12-26 15:07
第三级主题名下没必要做两个规则。
专利详情有这这种结构:
一个是两页签的,

我是用patent_type区别的二标签页和四标签页,如果是二标签页,patent_type的值是[发明专利]或[实用新型]或[外观设计];如果是四标签页,patent_type的值是[发明授权专利]。
所以我把patent_type对于二标签页的xpath写成.//*[@class='f16 fl'][(contains(./text(),'发明专利') or contains(./text(),'实用新型') or contains(./text(),'外观设计'))=1][contains(./text(),'发明授权专利')=0]/text();对于四标签页的xpath写成.//*[@class='f16 fl'][contains(./text(),'发明授权专利')]/text()。
因为抓取的这些内容在网页上肯定都会出现,所以我都给设成了关键内容。


不过不太清楚为什么第二级patent_spread_more_bt的连续动作做完后就匹配失败了,麻烦再帮看下,谢谢!
举报 使用道具
xandy 论坛元老 发表于 2016-12-27 09:36:50 | 显示全部楼层
jfstip 发表于 2016-12-27 09:30
我是用patent_type区别的二标签页和四标签页,如果是二标签页,patent_type的值是[发明专利]或[实用新型] ...

原来的规则先另存一份,先对着原来我说的方案修改吧。
举报 使用道具
Fuller 管理员 发表于 2016-12-27 09:38:49 | 显示全部楼层
二级失败.jpg

这里的主题名显示有点问题,这里只显示开始运行的那个主题名,下个版本会把这个问题修改了。所以,你看到的匹配失败不一定发生在二级,因为二级主题只是入口,后续主题是连续动作的,没有出现在这个面板上。详细信息要查看日志文件metaseeker.log.txt
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-3-28 23:47