java 定制爬虫_Python爬虫:基于大量数据源的定制化爬虫(二)

f93242c1a4f2

你饿不饿

程序的主流程顺序是:当前页面列表识别-->后续任务生成

下面按照重要以及有趣的顺序介绍。

1.列表页识别

首先我们不妨去思考,作为活生生的人你如何发现这个页面是你想要的列表页?是不是因为你可以一眼就看见列表?那么列表页面的规则我们基本就找全了:

1.排列规则的链接被你认为是列表

2.你能一眼看见这些排列规则的链接说明它们的整体区域在你的主视图范围内。只要你认同以上想法,认为页面中心的列表才是我们想要的列表就可以看下面的流程图了。

f93242c1a4f2

列表识别流程图

2.加入权重打分机制一开始是为了过滤写的比较诡异的导航栏,可以有效提高识别准确性,不造成误判。

3.而其他过滤规则,举个例子 http://jgdw.chinasafety.gov.cn/login (随便找的 大家意会一下)这种含有更多的肯定不是我们的目标页面,而更多点进去才是。

4.而加入页面中有

且h1中的文本与网页的title相同,不要想了九成九是文章页,直接过滤就好,这是小样本。

识别效果图如下:

f93242c1a4f2

列表识别效果图

2.目录树展开

假如页面包含目录树,去尝试展开,展开方式为执行JavaScript(暴力展开或使用接口)。值得注意的是:

1.目录树就在当前页面

2.目录树在iframe中

这两点需要区分对待,但其实除了切换iframe这个步骤外,其他逻辑相同。

3.iframe处理

这个就很简单了,切进去发现不是目录树后切出来,根据其src属性生成后续任务。

4.点击事件与Ajax处理

此处Ajax与点击事件做等同处理,链接中href属性动态生成的也走相同逻辑,将元素xpath与动作作为参数传至后续任务,后续任务进行点击或其他操作。

主要逻辑就在上面了,后面还会写一篇关于selenium的注意事项的文章,踩了不少坑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值