CN103279516B - 网络爬虫识别方法 - Google Patents
网络爬虫识别方法 Download PDFInfo
- Publication number
- CN103279516B CN103279516B CN201310200211.5A CN201310200211A CN103279516B CN 103279516 B CN103279516 B CN 103279516B CN 201310200211 A CN201310200211 A CN 201310200211A CN 103279516 B CN103279516 B CN 103279516B
- Authority
- CN
- China
- Prior art keywords
- connection
- invalid
- request
- request sent
- web
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
提供一种网络爬虫识别方法。所述网络爬虫识别方法,包括以下步骤:确定入口网页上能够导向后端页面的连接;在每个确定的连接中创建新的无效连接;将创建的无效连接设置为隐蔽形式;当发出对隐蔽形式的无效连接的请求时,将所述请求识别为网络爬虫请求。所述网络爬虫识别方法可以准确地判断请求是否是网络爬虫发出,并且随着使用时间增加,识别效果会随着使用时间的积累而显著改善。
Description
技术领域
本发明涉及一种网络爬虫识别方法,更具体地讲,涉及一种使用隐蔽连接来有效地识别网络爬虫的方法。
背景技术
网络爬虫是一种自动获取网页内容的程序。在网页产品中,经常会出现有网络爬虫抓取页面内容而对网页的正常访问流量造成影响的问题。因此,需要对网络爬虫请求进行识别,以方便对网络爬虫进行过滤和屏蔽。
目前识别网络爬虫的方法主要有以下两种,即,请求分析法和统计法。请求分析法对单次请求包含的请求http包中的user agent信息进行分析,如果是明显的网络爬虫信息,则将相应的请求识别为网络爬虫请求。统计法对所有的请求根据IP进行访问轨迹统计,如果访问符合以下规则,则将相应的请求识别为爬虫请求:(1)访问比较平均,相隔一段接近的时间发出访问;(2)一天总访问量远大于正常IP的请求。
然而,请求分析法和统计法都存在明显的缺点。
请求分析法的缺点在于,只能识别到有提供明确信息的正规网络爬虫,如百度爬虫、搜搜爬虫等。然而,实际中有很多不规范的网络爬虫或者由竞争对手伪装的网络爬虫,它们都不会提供明确信息,这样就导致请求分析法无法对这一类网络爬虫进行识别。统计分析法的缺点在于:(1)其判断的规律无法确切定义,只能根据产品自身实际情况进行设定,存在误差;(2)其结果是不确定的,因为符合规律的IP只是在比较大概率上可能是网络爬虫,存在一些校园网、公司网出口的IP也会符合规律的情况。
发明内容
本发明的一方面提供一种网络爬虫识别方法,包括以下步骤:确定入口网页上能够导向后端页面的连接;在每个确定的连接中创建新的无效连接;将创建的无效连接设置为隐蔽形式;当发出对隐蔽形式的无效连接的请求时,将所述请求识别为网络爬虫请求。
可选地,创建新的无效连接的步骤包括:如果一个确定的连接中存在唯一表示该连接的字段,则生成一个该字段的无效值,并用该无效值拼装进该连接中,从而创建一个无效连接;如果一个确定的连接中不存在唯一表示该连接的字段,则在该连接中添加一个参数,从而创建一个无效连接,其中,创建的无效连接被记为ILinkij。
可选地,将创建的无效连接设置为隐蔽形式的步骤包括:在与每个确定的连接对应的页面的主模块的html代码中添加<a href=ILinkijstyle="display:none;"></a>形式的代码,从而将创建的无效连接设置为隐蔽形式。
可选地,将创建的无效连接设置为隐蔽形式的步骤还包括:如果包含<ahref=ILinkij style="display:none;"></a>形式的代码的无效连接可穷尽,则将相应的无效连接记录到集合Ilink1中,如果包含<a href=ILinkijstyle="display:none;"></a>形式的代码的无效连接不可穷尽,则将相应的无效连接记录到集合Ilink2中。
可选地,添加到确定的连接中的参数彼此不同。
可选地,识别网络爬虫请求的步骤包括:确定与发出的请求相应的连接是否设置在爬虫集合中;如果与发出的请求相应的连接设置在爬虫集合中,则将发出的请求识别为网络爬虫请求;如果与发出的请求相应的连接没有设置在爬虫集合中,则确定与发出的请求相应的连接是否设置在集合Ilink1中;如果与发出的请求相应的连接设置在集合Ilink1中,则将发出的请求识别为网络爬虫请求,并将与发出的请求相应的连接记录到爬虫集合中;如果与发出的请求相应的连接没有设置在集合Ilink1中,则确定与发出的请求相应的连接是否设置在集合Ilink2中;如果与发出的请求相应的连接设置在集合Ilink2中,则将发出的请求识别为网络爬虫请求,并将与发出的请求相应的连接记录到爬虫集合中;如果与发出的请求相应的连接没有设置在集合Ilink2中,则将发出的请求识别为非网络爬虫请求。
可选地,爬虫集合初始设置为空集。
根据本发明的实施例的网络爬虫识别方法,通过根据网络爬虫的抓取特征在源头网页代码中添加标示,可以准确地判断请求是否是网络爬虫发出,并且随着使用时间增加,识别效果会随着使用时间的积累而显著改善。
附图说明
通过下面结合附图进行的详细描述,本发明的上述和其它目的、特点和优点将会变得更加清楚,其中:
图1是示出根据本发明的实施例的网络爬虫识别方法的流程图;
图2是示出根据本发明的实施例的网络爬虫识别方法中的识别网络爬虫请求的步骤的流程图。
具体实施方式
下面,将参照附图详细描述本发明的实施例。
图1是示出根据本发明的实施例的网络爬虫识别方法的流程图。
参照图1,在步骤S101中,确定入口网页上能够导向后端页面的连接。例如,对于百度首页,http://www.baidu.com/是入口网页,而搜索框上方的新闻、网页、贴吧、知道、音乐、图片、视频、地图、百科、文库、更多等是能够导向后端页面的连接。此外,当在百度首页中进行搜索时,“百度一下”按钮是能够导向后端页面的连接。另一方面,当直接访问百度文库时,百度文库首页http://wenku.baidu.com/是入口网页,而百度文库首页上列出的各个文档连接则是能够导向后端页面的连接。
在步骤S102中,在每个确定的连接中创建新的无效连接。具体地讲,对于能够导向后端页面的连接的集合Bi中的每个连接bij,如果bij中存在唯一表示该连接的字段,则生成一个该字段的无效值(例如,IVij),并用该无效值拼装进该连接bij中,从而创建一个无效连接,创建的无效连接被记为ILinkij。另一方面,如果bij中不存在唯一表示该连接的字段,则在该连接bij中添加一个参数(例如,IPij),从而创建一个无效连接,创建的无效连接也被记为ILinkij。这里,对于每个连接bij,可添加到其中的参数IPij彼此不同。
在步骤S103中,将创建的无效连接设置为隐蔽形式。根据本发明的实施例,可通过在与bij对应的页面的主模块的html代码中添加<a href=ILinkijstyle="display:none;"></a>形式的代码,来将创建的无效连接设置为隐蔽形式。此外,如果包含<a href=ILinkij style="display:none;"></a>形式的代码的无效连接可穷尽,则将相应的无效连接记录到集合Ilink1中,如果包含<a href=ILinkij style="display:none;"></a>形式的代码的无效连接不可穷尽,则将相应的无效连接记录到集合Ilink2中。例如,百度文库中某个文集的数量是有限的,因此针对这个文集的连接创建的无效连接是可穷尽的。然而,对于“百度一下”按钮来说,由于可以存在无穷多个搜索词从而存在无穷多个搜索结果,因此针对“百度一下”这个连接创建的无效连接是不可穷尽的。用于创建的无效连接被设置为隐蔽形式,因此正常用户在浏览器中不会看到隐蔽的无效连接,因而无法发起请求,但是网络爬虫会对网页的html代码进行解析,就会将隐蔽的无效连接收录后再进行访问。对这些隐蔽的无效连接的请求就是网络爬虫请求。
因此,在步骤S104中,如果发出了对隐蔽的无效连接的请求,则这种请求将被识别为网络爬虫请求。下面,参照图2对步骤S104进行具体描述。
图2是示出根据本发明的实施例的网络爬虫识别方法中的识别网络爬虫请求的步骤的流程图。
在步骤S201中,当服务器接收到发出的请求时,确定与发出的请求相应的连接是否设置在爬虫集合中。这里,爬虫集合Spiders可以初始设置为空集。如果与发出的请求相应的连接设置在爬虫集合中,则在步骤S202中,将发出的请求识别为网络爬虫请求。如果与发出的请求相应的连接没有设置在爬虫集合中,则在步骤S203中确定与发出的请求相应的连接是否设置在集合Ilink1中。如果与发出的请求相应的连接设置在集合Ilink1中,则在步骤S204中,将发出的请求识别为网络爬虫请求,并将与发出的请求相应的连接记录到爬虫集合Spiders中。如果与发出的请求相应的连接没有设置在集合Ilink1中,则在步骤S205中,确定与发出的请求相应的连接是否设置在集合Ilink2中。如果与发出的请求相应的连接设置在集合Ilink2中,则在步骤S206中,将发出的请求识别为网络爬虫请求,并将与发出的请求相应的连接记录到爬虫集合Spiders中。如果与发出的请求相应的连接没有设置在集合Ilink2中,则在步骤S207中,将发出的请求识别为非网络爬虫请求。
根据本发明的实施例的网络爬虫识别方法,通过根据网络爬虫的抓取特征在源头网页代码中添加标示,可以准确地判断请求是否是网络爬虫发出,并且随着使用时间增加,识别效果会随着使用时间的积累而显著改善。
此外,通过实施本发明的实施例,可以为网页产品制作效果显著的网络爬虫识别方法,并且可以方便地了解到是否有竞争对手通过爬虫手段发起攻击或违规抓取网页内容。如果以上情况出现,也可以根据识别结果对竞争对手的请求进行屏蔽等操作。
尽管已经参照其示例性实施例具体显示和描述了本发明,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种改变。
Claims (6)
1.一种网络爬虫识别方法,包括以下步骤:
确定入口网页上能够导向后端页面的连接;
在每个确定的连接中创建新的无效连接;
将创建的无效连接设置为隐蔽形式;
当发出对隐蔽形式的无效连接的请求时,将所述请求识别为网络爬虫请求,
其中,创建新的无效连接的步骤包括:
如果一个确定的连接中存在唯一表示该连接的字段,则生成一个该字段的无效值,并用该无效值拼装进该连接中,从而创建一个无效连接;
如果一个确定的连接中不存在唯一表示该连接的字段,则在该连接中添加一个参数,从而创建一个无效连接,
其中,创建的无效连接被记为ILinkij。
2.根据权利要求1所述的网络爬虫识别方法,其中,将创建的无效连接设置为隐蔽形式的步骤包括:在与每个确定的连接对应的页面的主模块的html代码中添加<a href=ILinkij style="display:none;"></a>形式的代码,从而将创建的无效连接设置为隐蔽形式。
3.根据权利要求2所述的网络爬虫识别方法,其中,将创建的无效连接设置为隐蔽形式的步骤还包括:如果包含<a href=ILinkij style="display:none;"></a>形式的代码的无效连接可穷尽,则将相应的无效连接记录到集合Ilink1中,如果包含<a href=ILinkij style="display:none;"></a>形式的代码的无效连接不可穷尽,则将相应的无效连接记录到集合Ilink2中。
4.根据权利要求1所述的网络爬虫识别方法,其中,添加到确定的连接中的参数彼此不同。
5.根据权利要求3所述的网络爬虫识别方法,其中,识别网络爬虫请求的步骤包括:
确定与发出的请求相应的连接是否设置在爬虫集合中;
如果与发出的请求相应的连接设置在爬虫集合中,则将发出的请求识别为网络爬虫请求;
如果与发出的请求相应的连接没有设置在爬虫集合中,则确定与发出的请求相应的连接是否设置在集合Ilink1中;
如果与发出的请求相应的连接设置在集合Ilink1中,则将发出的请求识别为网络爬虫请求,并将与发出的请求相应的连接记录到爬虫集合中;
如果与发出的请求相应的连接没有设置在集合Ilink1中,则确定与发出的请求相应的连接是否设置在集合Ilink2中;
如果与发出的请求相应的连接设置在集合Ilink2中,则将发出的请求识别为网络爬虫请求,并将与发出的请求相应的连接记录到爬虫集合中;
如果与发出的请求相应的连接没有设置在集合Ilink2中,则将发出的请求识别为非网络爬虫请求。
6.根据权利要求5所述的网络爬虫识别方法,其中,爬虫集合初始设置为空集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310200211.5A CN103279516B (zh) | 2013-05-27 | 2013-05-27 | 网络爬虫识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310200211.5A CN103279516B (zh) | 2013-05-27 | 2013-05-27 | 网络爬虫识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103279516A CN103279516A (zh) | 2013-09-04 |
CN103279516B true CN103279516B (zh) | 2016-09-14 |
Family
ID=49062035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310200211.5A Active CN103279516B (zh) | 2013-05-27 | 2013-05-27 | 网络爬虫识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103279516B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294368B (zh) * | 2015-05-15 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 网络爬虫识别方法和装置 |
CN106959947A (zh) * | 2016-01-08 | 2017-07-18 | 刘挺 | 一种新型可排序反爬虫多领域垂直搜索网站的设计方法 |
CN105577701B (zh) * | 2016-03-09 | 2018-11-09 | 携程计算机技术(上海)有限公司 | 网络爬虫的识别方法及系统 |
CN105871845A (zh) * | 2016-03-31 | 2016-08-17 | 深圳市深信服电子科技有限公司 | Web漏洞扫描行为的检测方法及装置 |
CN106528779A (zh) * | 2016-11-03 | 2017-03-22 | 北京知道未来信息技术有限公司 | 一种基于可变url的爬虫识别方法 |
CN107147640B (zh) * | 2017-05-09 | 2019-12-31 | 网宿科技股份有限公司 | 识别网络爬虫的方法及系统 |
CN109214181A (zh) * | 2017-07-01 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 识别网络爬虫的方法、存储介质、电子设备及系统 |
CN109600272B (zh) * | 2017-09-30 | 2022-03-18 | 北京国双科技有限公司 | 爬虫检测的方法及装置 |
CN109670093A (zh) * | 2018-09-26 | 2019-04-23 | 深圳壹账通智能科技有限公司 | 爬虫识别方法、装置、设备及可读存储介质 |
CN109714313A (zh) * | 2018-11-20 | 2019-05-03 | 远江盛邦(北京)网络安全科技股份有限公司 | 防爬虫的方法 |
CN114036364B (zh) * | 2021-11-08 | 2022-10-21 | 北京百度网讯科技有限公司 | 用于识别爬虫的方法、装置、设备、介质和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902438A (zh) * | 2009-05-25 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种自动识别网页爬虫的方法和装置 |
CN102833212A (zh) * | 2011-06-14 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 网页访问者身份识别方法及系统 |
-
2013
- 2013-05-27 CN CN201310200211.5A patent/CN103279516B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902438A (zh) * | 2009-05-25 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种自动识别网页爬虫的方法和装置 |
CN102833212A (zh) * | 2011-06-14 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 网页访问者身份识别方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103279516A (zh) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103279516B (zh) | 网络爬虫识别方法 | |
US6401118B1 (en) | Method and computer program product for an online monitoring search engine | |
US7013323B1 (en) | System and method for developing and interpreting e-commerce metrics by utilizing a list of rules wherein each rule contain at least one of entity-specific criteria | |
CN101035128B (zh) | 基于中文标点符号的三重网页文本内容识别及过滤方法 | |
CN102065145B (zh) | 一种信息投放方法、装置和系统 | |
US10110966B2 (en) | Method, device, server and client device for video processing | |
US20080294997A1 (en) | Contextually Aware Client Application | |
CN103218431A (zh) | 一种能识别网页信息自动采集的系统与方法 | |
KR100785754B1 (ko) | 지역별 실시간 키워드 순위 결정 방법 및 지역별 실시간키워드 순위 결정 시스템 | |
CN101853300A (zh) | 一种视频下载服务网站的识别、评估方法及系统 | |
CN104090757B (zh) | 针对浏览器的富媒体信息展示方法 | |
CN103246654A (zh) | 搜索结果的展示处理方法和装置 | |
CN105376217B (zh) | 一种恶意跳转及恶意嵌套类不良网站的自动判定方法 | |
CN103838862B (zh) | 一种视频搜索的方法、装置及终端 | |
CN111859234A (zh) | 一种非法内容识别方法、装置、电子设备及存储介质 | |
CN104090923A (zh) | 一种浏览器中的富媒体信息的展示方法和装置 | |
US20110313843A1 (en) | Search advertisement targeting | |
CN106471497A (zh) | 使用上下文的辅助浏览 | |
JP5070124B2 (ja) | フィルタリング装置、およびフィルタリング方法 | |
CN105893584A (zh) | 一种显示收藏夹网址标签的方法、客户端和系统 | |
CN103312584A (zh) | 一种在网络社区中发布信息的方法与设备 | |
JP6164596B2 (ja) | キーワードターゲティングシステム、キーワードターゲティング装置、サーバ装置、キーワードターゲティング方法、及びプログラム | |
KR20090060840A (ko) | 연관 컨텐츠 제공 방법 | |
KR20080028031A (ko) | 키워드 및 키워드에 관련된 각종 콘텐츠를 자동으로추출하고 디스플레이하는 시스템 및 방법 | |
CN103077218A (zh) | 一种用于确定查询请求中查询序列的需求信息的方法与设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |