随笔分类 -  网络爬虫

摘要:1、基本抓取网页 2、使用代理IP 在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP; 在urllib2包中有ProxyHandler类,通过此类可以设置代理访问网页,如下代码片段: 3、Cookies处理 cookies是某些网站为了辨别用户身份、进行session跟踪而储存在用 阅读全文
posted @ 2016-07-21 11:45 94julia 阅读(317) 评论(0) 推荐(0)
摘要:1 聚焦爬虫工作原理及关键技术概述 网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索.. 阅读全文
posted @ 2013-03-30 17:27 94julia 阅读(486) 评论(0) 推荐(0)
摘要:5 Java带偏好的爬虫示例 在上一节中,我们已经指出,可以使用优先级队列(PriorityQueue)来实现这个带偏好的爬虫。在深入讲解之前,我们首先介绍优先级队列。 优先级队列是一种特殊的队列,普通队列中的元素是先进先出的,而优先级队列则是根据进入队列中的元素的优先级进行出队列操作。例如操作系统的一些优先级进程管理等,都可以使用优先级队列。优先级队列也有最小优先级队列和最大优先级队列两种。 理论上,优先级队列可以是任何一种数据结构,线性的和非线性的,也可以是有序的或无序的。针对有序的优先级队列而言,获取最小或最大的值是非常容易的,但是插入却非常困难;而对于无序的有衔接队列而言,插... 阅读全文
posted @ 2013-03-29 22:05 94julia 阅读(237) 评论(0) 推荐(0)
摘要:4 带偏好的爬虫 有时,在URL队列中选择需要抓取的URL时,不一定按照队列“先进先出”的方法进行选择。而把重要的URL先从队列中“挑”出来进行抓取。这种策略也称作“页面选择”(Page Selection)。这可以使有限的网络资源照顾重要性高的网页。 那么哪些网页是重要性高的网页呢? 判断网页的重要性的因素很多,主要有链接的欢迎度(知道链接的重要性了吧)、链接的重要度和平均链接深度、网站质量、历史权重等主要因素。 链接的欢迎度主要是由反向链接(backlinks,即指向当前URL的链接)的数量和质量决定的,我们定义为IB(P)。 链接的重要度,是一个关于URL字符串的函数,仅仅考察... 阅读全文
posted @ 2013-03-29 21:27 94julia 阅读(184) 评论(0) 推荐(0)
摘要:接上节 3 Java 宽度优先爬虫示例 本节使用java实现一个简易的爬虫。其中用到了HttpClient和HtmlParser两个开源工具包。HttpClient的内容之前已经做过详细的阐述。有关HtmlParser的用法,以后会给出详细的介绍。为了便于理解,下面给出示例程序的结构,如下图: 首先,需要定义图中所描述的“URL队列”,这里使用一个LinkedList来实现这个队列。Queue类/***队列,保存将要访问的URL*/public class Queue{ //使用链表实现队列 private LinkedL... 阅读全文
posted @ 2013-03-19 20:09 94julia 阅读(287) 评论(0) 推荐(0)
摘要:上一节介绍了如何获取单个页面内容。在实际项目中,则使用爬虫程序遍历互联网,把网络中相关的网页全部抓取过来,这也体现了爬虫程序“爬”的概念。爬虫程序是如何遍历互联网,把网页全部抓取下来的呢?互联网可以看成一个超级大的“图”,而每个页面可以看作是一个“节点”。页面中的链接可以看成是图的“有向边”。因此,能够通过图的遍历的方式对互联网这个超级大“图”进行访问。图的遍历通常可以分为宽度优先遍历和深度优先遍历两种方式。但是深度优先遍历可能会在深度上过“深”地遍历或者陷入“黑洞”,大多数爬虫都不采用这种方式。另一方面,在爬取的时候,有时候也不能完全按照宽度优先遍历的方式,而是给待遍历的网页赋予一定的优.. 阅读全文
posted @ 2013-03-19 16:05 94julia 阅读(447) 评论(0) 推荐(0)
摘要:网络爬虫的基本操作是抓取网页。那么如何才能随心所欲地获得自己想要的页面?这一节将从URL开始讲起,然后告诉大家如何抓取网页,并给出一个使用Java语言抓取网页的例子。最后,要讲一讲抓取过程中的一个重要问题:如何处理HTTP状态码。1.1.1 深入理解URL 抓取网页的过程其实和读者平时使用IE浏览器浏览网页的道理是一样的。比如,你打开一个浏览器,输入猎兔搜索网站的地址,如图1.1所示。 图1.1 使用浏览器浏览网页 “打开”网页的过程其实就是浏览器作为一个浏览的“客户端”,向服务器端发送了一次请求,把服务器端的文件“抓”到本地,再进... 阅读全文
posted @ 2012-06-19 19:27 94julia 阅读(1242) 评论(0) 推荐(1)