主题:丁香医生-科室主页
网址:https://ask.dxy.com/ama/index#/list/section/40
1、设置了模拟点击之后,记号线索就失效了。但是我需要点击所有的医生,如果不能设置先点击“加载更多”再点击医生,后面的医生就点不到了。
2、我给模拟点击设置的重复次数,以“加载更多”的@class作合并表达式。结果爬虫只点击前两个医生,模拟点击重复2次就停止了。我尝试过先把“加载更多”点完,用最后的“没有更多了哟”做合并表达式。保存时就会提示记号线索的DOM值不在线索里。虽然也能保存,但是模拟点击重复2次都是在点击第一个医生。并且也是只重复两次就停止了。不点击“加载更多的”问题也没有得到解决。
举报 使用道具
| 回复

共 8 个关于本帖的回复 最后回复于 2018-12-25 10:35

沙发
数据菊 中级会员 发表于 2018-12-18 17:05:42 | 只看该作者
我刚刚在点击医生的动作前加了个点击“加载更多”,重复次数-1,合并表达式为“加载更多”DIV节点的@class。现在能够先点击加载更多再点击医生了。但是重复2次就停止,且都是点击第一个医生的问题还没有解决。
举报 使用道具
板凳
Fuller 管理员 发表于 2018-12-18 18:10:43 | 只看该作者
数据菊 发表于 2018-12-18 17:05
我刚刚在点击医生的动作前加了个点击“加载更多”,重复次数-1,合并表达式为“加载更多”DIV节点的@class ...

这个有点棘手,点击加载更多以后,页面变长了,而点击每个医生的连续点击动作会循环网页上每个医生,会再次点击上一次点击过的。我测试一下
举报 使用道具
地板
Fuller 管理员 发表于 2018-12-18 18:14:57 | 只看该作者
有一个简单方案可以做,但是不完美:
1,定义第一级规则,这一级主要就是连续动作,点击加载更多,重复点击。但是不太清楚点击多少次才行,所以,不完美,可以设置一个合适的数字,比如,15次
2,第一级连续动作指向第二级目标主题
3,第二级规则抓取列表,同时也做连续动作,点击所有医生,目标主题指向第三级

总体思路就是:先把完整医生列表点出来,然后对着这个列表逐个点击医生
举报 使用道具
5#
Fuller 管理员 发表于 2018-12-18 18:26:30 | 只看该作者
点击每个医生,然后回退,这个过程中,点击动作的重复次数不要变,保持是1次。上面我说的方案可以采集
举报 使用道具
6#
数据菊 中级会员 发表于 2018-12-18 21:12:36 | 只看该作者
本帖最后由 数据菊 于 2018-12-18 21:13 编辑
Fuller 发表于 2018-12-18 18:26
点击每个医生,然后回退,这个过程中,点击动作的重复次数不要变,保持是1次。上面我说的方案可以采集 ...

主题名:
丁香医生-科室主页A
丁香医生-科室主页B
丁香医生-医生主页
现在有3个很诡异的Bug:
1、科室主页B的模拟点击会影响科室主页A模拟点击的重复次数:
如果给科室主页B设置点击医生的连续动作,科室主页A只会点击“加载更多”1次。不动科室主页A,直接删除科室主页B的连续动作。科室主页A就能好好地重复点击。
XML文档的大小会变成这样:

2、医生主页的回退也能影响科室主页A的重复次数和科室主页B的点击位置:
如果设置回退的目标主题是科室主页A,那么科室主页A就会只重复1次,重复采集第一个医生。科室主页B重复点击第一个医生。
如果设置回退的目标主题是科室主页B,那么科室主页A就会重复3次。科室主页B循环点击前3个医生。
XML的文档大小会变成这样:

更加诡异的是,只有设置回退到科室主页B,第一个XML文件才是6KB的。其他操作第一个都是10KB的,打开一看发现10KB的比6kb的多采了6KB的2个。其中一个是6KB的第一个,另外一个不知道是哪里的。
3、医生主页的回退设置会影响终点标志的生效。
当医生主页设置回退至科室主页A时,爬虫的终点标志-重复内容会生效。使得医生主页采集完第二个“齐峥嵘”后,打数机会终止。但如果设置回退至科室主页B时,这个终点标志设置就会失效。重复采集前3个医生不停止,需要手动强制退出。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
举报 使用道具
7#
Fuller 管理员 发表于 2018-12-19 18:04:33 | 只看该作者
我又做了一些测试,每次点击更多,还是要把以前的采集过的还会点击一遍,我发现重复点击还是要点击一次执行一次下级主题,我们再想想是否可以再改进一下爬虫
举报 使用道具
8#
Fuller 管理员 发表于 2018-12-24 20:48:13 | 只看该作者
我们出了一个测试版本,发现达不到预期,原因是这个网页有些不太好处理,看来还是最初的方案比较好,就是要重复采集一些数据。

假设这两个主题
1, 丁香医生-科室主页:负责连续动作点击然后采集第二个主题的内容,同时还负责翻页,点击加载更多
2, 丁香医生-医生主页:负责采集内容,并用回退动作回到第一个主题

假设科室主页上有20个医生,用上面的两个主题,采集过程是:
1,逐个点击20个医生,采集他们的内容
2,点击加载更多,页面上就有40个医生了
3,逐个点击40个医生,采集他们的内容(重复了20个,前一轮采集过了)
4,点击加载更多,页面上就有60个医生了
5,.....
这样就有重复采集,但是能执行下去。

我们本来想出一个新版本,用3个主题
1, 丁香医生-科室主页pre:专门点击加载更多,目的是一口气把医生列表都展示出来
2, 丁香医生-科室主页:负责连续动作点击然后采集第三个主题的内容
3, 丁香医生-医生主页:负责采集内容,并用回退动作回到第二个主题

新版本做出来了,发现这个网站不行,当第三个主题执行回退的时候,回到的医生列表页只有初始的20个医生,其他的都刷新掉了
举报 使用道具
9#
Fuller 管理员 发表于 2018-12-25 10:35:35 | 只看该作者
尝试了多种方法,目前这些采集方案都无法采集加载更多后的内容,因为这个医生列表虽然一开始加载了更多医生,但是一回退,加载更多的内容都没有了。如果要解决这个问题,需要强制弹出新窗口显示医生详情,这样就不用回退了,用飞掠模式进行采集。这个强制弹窗口的功能需要开发
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • 为什么用微软的excel无法打开xls文件?powe
  • 360或火绒等杀毒软件导致GooSeeker爬虫软件
  • 话题分析(NMF模型和LDA模型)软件的安装和
  • 运行Apple无法验证的程序的方法
  • 文本聚类分析软件的安装和使用方法

热门用户

GMT+8, 2025-6-21 00:21