1. 首页 > 笙耀百科 >

网络爬虫技术 网络爬虫技术有哪些

。聚焦爬虫的 工作流程 较为复杂,需要根据一定的 网页分析算法 过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的 分析结果 还可能对以后的抓取过程给出反馈和指导。 网络爬虫工作原理 相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题: (1)对抓取目标的描述或定义; (2)对网页或数据的分析与过滤; (3)对URL的 搜索策略 。 面临的问题 截止到 2007 年底,Internet 上网页数量超出 160 亿个,研究表明接近 30%的页面是重复的; 动态页面 的存在:客户端、 服务器端 脚本语言 的应用使得 指向 相同 Web 信息的 URL 数量呈 指数级 增长。 上述特征使得网络爬虫面临一定的困难,主要体现于 Web 信息的巨大容量使得爬虫在给定时间内只能下载少量网页。 Lawrence 和 Giles 的研究表明没有哪个搜索引擎能够索引超出 16%的Internet 上 Web 页面,即使能够提取全部页面,也没有足够的空间来存储。 Powered by .NET 7.0 on Kubernetes [评论:动态拨号也是一种解决方案]

对于第二种情况,可以在每次请求后随机间隔几秒再进行下一次请求。有些有逻辑漏洞的网站,可以通过请求几次,退出登录,重新登录,继续请求来绕过同一账号短时间内不能多次进行相同请求的限制。

网络爬虫技术 网络爬虫技术有哪些网络爬虫技术 网络爬虫技术有哪些


网络爬虫技术 网络爬虫技术有哪些


[评论:对于账户做防爬限制,一般难以应对,随机几秒请求也往往可能被封,如果能有多个账户,切换使用,效果更佳]

4.3动态页面的反爬虫

网络爬虫技术 网络爬虫技术有哪些


上述的几种情况大多都是出现在静态页面,还有一部分网站,我们需要爬取的数据是通过ajax请求得到,或者通过Ja生成的。首先用Firebug或者HttpFox对网络请求进行分析。如果能够找到ajax请求,也能分析出具体的参数和响应的具体含义,我们就能采用上面的方法,直接利用requests或者urllib2模拟ajax请求,对响应的json进行分析得到需要的数据。

[评论:感觉google的、IE的网络请求分析使用也挺好]

能够直接模拟ajax请求获取数据固然是极好的,但是有些网站把ajax请求的所有参数全部加密了。我们根本没办法构造自己所需要的数据的请求。我这几天爬的那个网站就是这样,除了加密ajax参数,它还把一些基本的功能都封装了,全部都是在调用自己的接口,而接口参数都是加密的。遇到这样的网站,我们就不能用上面的方法了,我用的是selenium + phantomJS框架,调用浏览器内核,并利用phantomJS执行js来模拟人为作以及触发页面中的js脚本。从填写表单到点击按钮再到滚动页面,全部都可以模拟,不考虑具体的请求和响应过程,只是完完整整的把人浏览页面获取数据的过程模拟一遍。

[评论:支持phantomJS]

用这套框架几乎能绕过大多数的反爬虫,因为它不是在伪装成浏览器来获取数据(上述的通过添加 Headers一定程度上就是为了伪装成浏览器),它本身就是浏览器,phantomJS就是一个没有界面的浏览器,只是控这个浏览器的不是人。利用 selenium+phantomJS能干很多事情,例如识别点触式(12306)或者滑动式的验证码,对页面表单进行破解等等。它在自动化渗透中还 会大展身手,以后还会提到这个。

网络爬虫技术 网络爬虫技术有哪些


5、参考资料 [1] 网络爬虫基本原理 [2] 基于HttpClient4.0的网络爬虫基本框架 [3] 开源Python网络爬虫框架Scrapy [4] 开源爬虫框架各有什么优缺点 [5] 化海量数据采集爬虫框架搭建 [6] 网站常见的反爬虫和应对方法 转载于 原文链接:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息