如何抓取AJAX/Javascript模拟的超链接

网页上有大量的超链接,多数情况下显示成蓝色,而且有下划线,很好识别,点击它可以导航到其它网页,这是互联网冲浪的唯一途径。

举个例子,在HTML网页文档中,<a href="http://www.gooseeker.com">网页内容和超链接抓取知识库</a>就是一个超链接,其中href 的值就是点击后导航到的网页的地址,但是,这仅仅是通常的情形,随着AJAX/Javascript大量用于编写HTML网页,超链接的实现方法也改变 了,很多情况下href的值并没有有效内容,超链接只是用于激发运行特定的Javascript代码片断,由javascript代码模拟履行超链接点击 的职责,例如,在代码中使用XMLHttpRequest对象即时从服务器获得数据内容,然后将这些内容转换成HTML格式修改补充到原有的网页上,这就 是AJAX框架的典型行为。

如果是第一种情形,使用正则表达式分析HTML文档或者使用XPath表达式分析HTML DOM都可以很容易地将超链接指向的页面地址抓取下来;但是,如果是第二种情形,超链接指向的网页的地址并没有出现在HTML文档中,通过分析页面文档内容不可能抓取超链接。网页内容和超链接抓取软件工具包MetaSeeker能够模拟用户点击行为,激发Javascript代码的运行,导航到指向的网页,紧接着抓取此网页上的内容,可见这是自动翻页抓取多页内容的有效方法,而且很显然,没有将超链接指向的地址抓取并保存下来,这就是MetaSeeker工具包所定义的In-thread线索,即,在同一个网页内容抓取会话中导航到多个网页并抓取内容,而不是通常的“抓取超链接”-“存储超链接”,然后在另一个会话中使用上一会话抓取的超链接。

截止到MetaSeeker V4.1.1版本,每个网页上只能抓取一个in-thread类型线索,所以,只能用于翻页抓取,这个局限将在以后版本中突破。

转载于:https://my.oschina.net/fuller/blog/1855

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值