您的位置:首页 > 代理IP资讯
发布时间:2019-12-06 18:37:11
修改ip地址方法基于匿名网络的网络爬虫设计与实现

基于匿名网络的网络爬虫设计与实现

摘要:

随着大数据时代的到来修改ip地址方法,数据重要性也日益凸显,网络爬虫作为获取互联网数据的工具也随之变得重要。为了防范恶意的爬虫,许多网站设定如IP黑名单的反爬虫措施,从而导致对于对数据有着正规需求的机构获取网络数据变得困难。为满足学术界和有正规需求的机构的爬虫需求,设计与实现基于匿名网络的网络爬虫,经过测试系统可以冲突IP黑名单这一反爬虫措施的障碍,为有相关正规需求的机构提供有效的方法。

关键词:

匿名网络;网络爬虫;Tor 基金项目:修改ip地址方法


o引言

根据2017122月中国互联网络信息中心发布的第39次《中国互联网络发展状况统计报告》显示,中国网民规模达7引亿,相当于欧洲人口总量,互联网普及率达到53 · 2%卩]。随着对互联网依程度的加深,人们每天在互联网上所产生的数据也急剧增加,逐渐步人了“海量数据时代"。同时如果能将这些数据加以利用,将对相关研究领域、各行各业甚至每个人都会带来巨大的影响。例如,“人工智能"技术的发展与进步,在很大程度上依赖于这些数据。所以如何获得这些数据成为了关键步骤,网络爬虫是获取这些数据的最常用的方法之一

现在有关网络爬虫相关技术的研究日益成熟。有基于主题的网络爬虫3]、也有利用分布式的技术进行网络爬虫[34],甚至还出现了针对广大普通用户的可以

直接通过浏览器插件直接进行爬虫平台和方法[5]。针对这些爬虫技术手段的出现和普及,很多网站为了防止被恶意的爬取信息所以对爬虫做了的限制,例如IP 黑名单等方法[6]。但是这些反爬虫措施的使用对正规进行学术研究设置了障碍,为了在一定程度上突破单这一屏障限制,为学术研究提供稳定的数据来源,设计与实现可以使用动态IP方法进行爬虫是很有必要的。基于此,本文设计了基于匿名网络的爬虫系统,可以在一定程度上突破IP黑名单这一限制方式。

1网络爬虫

网络爬虫(Crawl),也被称为网络蜘蛛,是一种用来自动浏览万维网的网络机器人。网络爬虫一般从给定的一张统一资源地址(URLs)列表开始的。爬虫首先通过访问URLs并获得所对应的网页内容,在对所获取的网页进行处理时,爬虫会甄别出页面中所有的超链接,把其中访问过的URLs剔除后将剩下未访问的URLs 存人“带访问列表",即所谓“爬行疆域"crawlfron· tier)o在爬虫过之后的网页数据将会被定制化的进行处理或者存储,并且一些爬虫会定期对己爬取的网页进行重新访问,以便获取和更新最新的佇自

通过爬取方式的不同可以将网络爬虫分为以下四种策略:

D指定页面下载的选择策略。爬虫一般是针对指定的URLs或者网站进行的,这样可以避免获取不必要的网站或网页。

现代计算机2017 6上.

 

2)检测页面是否改变的重新访问策略。在对网页爬取后,需要定期或者按照某种规则对该页面重新爬取以便获得最新的信息

3)定义如何避免网站过度访问的约定性策略在爬虫时为了避免对某蚱网站过度的访问,一般会定义爬取的深度

4)如何部署分布式网络爬虫的并行策略。网络上每天都有大量的内容被创建更新,如果更加快速地进行爬取是很有必要的,所有设计和使用分布式网络爬虫进行并行爬虫很有必要

匿名网络与Tor

2.1匿名网络

在网络普及的今天,用户在享受网络带来的便捷的同时,也遭受了个人信息被泄露的封信。匿名网络(Anonymity Networks)的出现使得用户在享受网上冲浪的同时又不担心个人信息被泄露匿名网络是通过隐匿了用户的IP报文的信息,从而达到保护了用户的信息以及防止用户被恶意的追踪一种网络模型

匿名(Anonymity)是指在进行通信过程中,通信实体所呈现的一种不可被识别的状态为了达到这种状态,匿名网络经历了从节点混淆的通信方式,到以叠加的DC一链为基础的通信方式,再到多层加密的通信方式囝。同时也拥有了多中匿名网络,如crowds12PTo的等

2.2Tor

Tor匿名网络是在全球志愿者的支持和维护下运行的,是现在最成功、分布最广的公共匿名网络。Tor Reed等人在Onion Routin的算法的基础上实现了 Tor匿名网络具有继承Onion Routing的特点具有低延时的特点,并且具有一定的防止流量分析的能力。Tor 匿名网络是一种混合网络,即支持socks 5和动态代理链的匿名网络囝。

Tor系统架构如图1所示,客户机通过Tor访问 web服务器时,首先从目录服务器中下载所有的洋葱路由节点信,而后根据目录服务器所提供的的各节点带宽、出口位置以及在线时间等因素选择至少3个节点来作为数据的转发路径,其中一个为人口节点(entry node)、一个或多个为中间节点@iddle node)以及一个出口节点吓it node)o路径确定之后,客户机与Web服务

 

3、匿名爬虫设计与实现

3 .1系统架构

整个匿名爬虫系统是由匿名网络模块、爬虫模块以及管理模块部分组成,系统结构如图2所示在整个系统运行流程分为以下两种方式:

1)在IP未被网站限制的情况下,通过匿名网络进行的正常爬虫操作,如图2中数据流向所示,即a-> b->c->do主要实现了爬虫模块向匿名模块发出web 请求,并由匿名模块向web服务器请求网页并将所获取的网页返给爬虫模块,由爬虫模块进行下一步的

处理

2)在IP被网站限制的情况下,爬虫模块检测出 IP被网站限制的情况后,爬虫停止工作并将消息发给控制模块,交由控制模块处理(如图2中步骤1所示);

控制模块获得IP被限制的消息后,向匿名模块申请新的IP的请求(如图2中步骤2所示);匿名模块更换11) 之后将信息反馈给控制模块(如图2中步骤3所示);控制模块在得到IP更换成功的消息后,通知爬虫模块进行工作(如图2中步骤4所示)。

3 .2匿名网络模块

该模块功能是由Tor来负责实现的,首先需要将 Tor部署在系统中,并开启Tor控制端口(默认为5051)和socks端口(默认为9050)。控制端口实现让通过这一端口来控制Tor的功能,控制模块可以通过该端口控制Tor从而获得新的匿名IP/身份,从而实现了动态IP的功能;socks端口为了实现数据的转发功能,爬虫通过该端口转发功能将发送或者接受数据包从而支持了通过匿名网络来进行爬虫功能的实现

 

3.3爬虫模块

爬虫模块是整个匿名爬虫系统中实现最为复杂繁琐的模块。如图3所示,它包括调度、下载、解析、爬虫引擎以及存储五个子模块

 

3爬虫模块结构图

1)爬虫引擎子模块:负责整体驱动数据流和控制流,触发事务处理的功能;

给存储子模块进行管理;

巧)存储子模块:管理和维护所解析后的内容数据,为后期的数据使用提供了数据服务

3 · 4控制模块

控制模块为本文的创新功能实现的关键,它是爬虫模块与匿名模块的中间点。在爬虫可以正常进行的数据获取和访问的过程中,控制模块处于休眠阻塞状态;在IP地址被网站限制时,控制模块会被激活向匿名网络申请新的IP地址控制模块控制流程如图4 所示

 

控制模块主要的实现pyhton代码如下:

2)调度子模块:维护和管理未爬取、已爬取以及Get new甲from tor network需更新的URLs列表,为下载子模块提供URL以供其下载;

3)下载子模块:通过匿名网络访问获取网页数据,并将数据传递给解析子模块:

4)解析子模块:是整个爬虫模块的核心,主要针对网页网页数据进行解析,并将所解析出的URL发送

给调度子模块以及按照需求将所解析出的网页数据交测试结果与分析本文以作为目标进行测试,该测试网站拥有IP黑名单反爬虫的限制措施、对该网站进行大约十分钟的爬虫操作后会使IP进人黑名单,从而出现无法访问的情况、在对本文所构建的基于匿名网络的爬虫系统进行测试时,爬虫系统可以连续不断地爬取网站数据,同时在出现被拉人IP黑名单(无法访问)的情况下,系统可以自动获取新的身份进行不中断的网络爬虫,满足系统预设的要求。


5结语

本文给出了基于匿名网络的爬虫系统的设计思路和实现方法。这是首次设计与实现了将Tor匿名网络应用于爬虫,为学术研究提供了稳定数据获取的方式,而不用担心被网站拉人了IP黑名单。通过系统运行测试证明该系统实现了突破IP黑名单限制的网络爬虫。


上一篇 下一篇