推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的反反爬虫技术分析与应用

更新时间:2019-12-24 09:20:40 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:python大数据数据分析 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

爬虫软件是现今互联网环境下,高效准确地获取数据的重要方式之一。针对传统的初级爬虫技术易于被目标网站拦截访问的问题,简述爬虫的工作原理和方式,讨论爬虫、反爬虫与反反爬虫之间的相互关系。分析应对目标网站的反反爬虫机制,包括伪装用户代理,设置IP地址代理、使用自动化测试工具调用浏览器等技术要点,并分析了基于Python语言中Requests库,构建了对网页的多种请求方式和数据获取方法的解决方案。结合反反爬虫机制与数据分析技术,以哔哩哔哩视频网为案例,分析其网页基本结构与调用的应用程序接口,使用Python与Requests库抓取网站所有视频的相关数据。数据清洗后分析播放量最高视频的相关信息,并将结论以数据可视化的方式呈现,实现对数据的获取、挖掘与分析。


部分文件列表

文件名 大小
基于Python的反反爬虫技术分析与应用.pdf 2M

部分页面预览

(完整内容请下载后查看)
Vol.8 No.4  
Aug.2018  
期  
2018 月  
用  
Intelligent Computer and Applications  
ꢀ ꢀ ꢀ ꢀ ꢀ  
文章编号: 2095 2163201804 0112 04  
中图分类号: TP319  
文献标志码: A  
基于 Python 的反反爬虫技术分析与应用  
余豪士匡芳君  
温州商学院 信息工程学院浙江 温州 325035)  
爬虫软件是现今互联网环境下高效准确地获取数据的重要方式之一针对传统的初级爬虫技术易于被目标网站拦截访问的问题,  
简述爬虫的工作原理和方式讨论爬虫反爬虫与反反爬虫之间的相互关系分析应对目标网站的反反爬虫机制包括伪装用户代理设置 IP  
地址代理使用自动化测试工具调用浏览器等技术要点并分析了基于 Python 语言中 Requests 构建了对网页的多种请求方式和数据获取方  
法的解决方案结合反反爬虫机制与数据分析技术以哔哩哔哩视频网为案例分析其网页基本结构与调用的应用程序接口使用 Python 与  
Requests 库抓取网站所有视频的相关数据数据清洗后分析播放量最高视频的相关信息并将结论以数据可视化的方式呈现实现对数据的  
获取挖掘与分析。  
关键词网络爬虫反爬虫反反爬虫大数据数据分析  
Crawler and anti anti crawler technology based on Python  
YU HaoshiKUANG Fangjun  
School of Information EngineeringWenzhou Business CollegeWenzhou Zhengjiang 325035, China)  
AbstractCrawler software is one of the most important ways to obtain data effectively and accurately in the current Internet  
environment. In view of the traditional crawler technology which is prone to be intercepted by target websitethe paper explains how  
the crawler appears to workdiscusses about the relationship between crawleranti crawler and anti anti crawlerand analyzes the  
mechanism of anti anti crawler for the target websiteincluding fake user agentssetting IP proxy addresscalling browser using  
automated testing tools. Furthermoremultiple requests and data acquisition methods for web pages are built based on Requests  
Library in Python language and its solution is analyzed. Combined with the mechanism of anti anti crawler and data analysis  
technologythe paper takes the Bilibili website as a caseanalyzing its basic structureas well as its API called. On the one sideall  
relevant data of video on the Bilibili website is captured using Python and Requests Library and the related information of the video,  
in which the highest click rate is analyzed after data cleaning. On the other sidethe conclusion is presented in the way of data  
visualizationand the data acquisitionmining and analysis are also realized.  
Key wordsWeb crawleranti crawleranti anti crawler technologybig datadata analysis  
止爬虫脚本妨碍本网站的正常运营对正常用户的  
引言  
访问造成了负面影响。  
大数据时代下的数据来源和获取尤为重要[1]  
1ꢀ 反反爬虫概述  
爬虫技术作为一项获取数据的工具而被广泛应用。  
已超过 60的互联网流量来自爬虫Spider各大  
搜索引擎门户网站以及新闻网站的文章都与爬虫息  
息相关爬虫技术已成为当今的研究热点目标网  
站对爬虫软件所做的各方面防范给出了不同的拦  
截方式[2] 发者与开发者之间通过爬爬  
反反爬虫技术进行较量一方面开发者想通过爬  
虫脚本获取数据另一方面开发者又想拦截爬虫防  
1.1ꢀ 反反爬虫技术  
爬虫软件是一种模拟浏览器的行为是从指定  
网站抓取和保存网络数据的应用软件爬虫软件提  
取出存在于网页上的数据并以结构化的方式存储。  
主要活动于计算机网络通信模型中的传输层与应用  
传输层使用 TC协议与目标 Web 服务器进  
行数据传输应用层使用 HTTP HTTPS 协议与目  
基金项目国家自然科学基金(61402227。  
作者简介余豪士(1997 ),本科生CCF 会员(90298主要研究方向数据分析前后端开发匡芳君(1976 ),博士教授CCF 会员  
(14005主要研究方向群智能与多目标优化模式识别信息安全等。  
通讯作者匡芳君ꢀ  
Emailkfjztb@ 126.com  
收稿日期2018 05 11  
期  
余豪士基于 Python 的反反爬虫技术分析与应用  
113  
Web 服务器通信[3]  
本时需要设置 IP 代理池在多进程下多个进程间  
使用不同的 IP 代理访问目标网站绕过站点服务器  
IP 地址字段的检测加快爬取数据的效率例如:  
由于传统的初级爬虫不使用任何隐藏伪装手  
在对站点发送大量请求时会加重目标 Web 服  
务器的负担且容易被服务器侦测在大中型网站  
开发者会针对传统的初级爬虫制定一系列的反  
爬机制如针对爬虫软件所处终端进行 IP 限制针  
对请求报文中 Header 属性拦截爬虫软件通过分析  
网站流量和日志统计分析过滤爬虫爬虫开发者针  
对反爬虫机制开发了一套反反爬虫机制在爬取数  
据的过程中防止被目标站点拦截开发者需最大限  
度地将爬虫模拟成真人行为获取真实可靠的数据。  
初级爬虫反爬虫反反爬虫的关系如图 所示。  
proxies  
http':'XX.XX.XX.XX:XXXX',  
'https':'XX.XX.XX.XX:XXXX'}  
requests.getrl, proxies proxiesext  
data  
1.2.4ꢀ 使用自动化测试工具 Selenium  
Selenium 是一个用于 WEB 开发自动化测试的  
软件其本身用于从用户角度使用终端测试 Web 应  
加载浏览器驱动对网页进行操作爬虫开发者  
使用 Selenium设置适应的浏览器Chome  
Driver 或无头浏览器 PhantomJS,最大限度模拟真人  
行为应用代码如下:  
爬虫开发者无法获取数  
对网站造成影响,  
反反  
初级  
爬虫  
反爬  
对反爬虫机制编  
写高级爬虫  
网站开发者设置  
拦截机制  
爬虫  
from selenium import webdriver  
driver  
webdriver.Chrome)  
1ꢀ 爬虫反爬虫反反爬虫关系  
1.2.5ꢀ 访问移动端站点  
Fig. 1ꢀ The relationship between crawleranti crawler and anti  
anti crawler  
网站根据终端浏览器的用户代理相应不同的页  
其中终端分为移动端和 PC 移动端站点地  
址通常以 WAP 开头且对爬虫软件的限制不如 PC  
端强如果目标站点有移动端页面且数据可抓性  
1.2ꢀ 反反爬虫策略  
1.2.1ꢀ 降低访问频率  
对目标站点连续访问不同网页如果不限制爬  
虫的请求频率爬虫的效率只会受到所处终端的处  
理能力和带宽的限制因此爬虫的访问频率会非常  
通过增加线程的休眠时间降低访问频率实现  
模仿人为浏览的行为具体代码如下:  
import time  
可以对移动端页面进行抓取[5  
6]  
2ꢀ 基于 Requests 库编写爬虫  
Python 中的第三方 HTTP 、Requests 库被爬虫  
开发者广泛应用。 Requests 集成了定制请求头发送  
请求传递 URL 参数获取相应内容等多种函数[7]  
time.sleep(0.5)  
1.2.2ꢀ 伪装用户代理  
2.1ꢀ 发送请求  
用户代理ser Agent是一种代表用户行为的  
在发送请求上,Requests 集成了多种请求方式,  
例如最普遍的 get post 请求还有其他 HTTP 协议  
中的请求类型具体实现过程如下:  
属性用于发送 HTTP 请求描述用户系统和浏览器  
信息站点服务器通过获取报文中的 User Agent  
属性给不同操作系统与浏览器发送不同页面通  
常爬虫软件在请求数据时不会携带此属性字段目  
标站点也因此可侦测与进行拦截所以爬虫脚本  
response requests.get('https ttpbin.oret')  
response  
delete" )  
response  
org / get" )  
requestselete( " http ttpbinrg /  
requests. options ( " http/ / ttpbin.  
在请求时需在头部加入类似浏览器的 User Agent  
属性[4] 例如:  
ser Agenindows NT 10. 0;  
headers  
2.2ꢀ 传递 URL 参数  
Win64; x6 ppleWebKi37. 36 ( KHTML, like  
Gecko) Chrome / 59.0.3071.115 Safar37.36'}  
在浏览器地址输入栏输入目标网址的地址后,  
可输入以键值对形成的参数最终形成一个完整的  
URL 地址跳转至目标网页同理在 Requests 库也  
有此功能以字典的形式构建实现过程如下:  
requests.getrl, headers headersext  
data  
1.2.3ꢀ IP 代理  
爬虫脚本在访问请求的过程中,TCP 报文会携带  
params  
key1':'value1','key2': 'value2'}  
客户端的 IP 地址站点服务器也因此可获取到客户  
端的 IP 地址爬虫软件访问频率过高站点服务器  
可对此 IP 地址进行暂时性的封禁开发者在编写脚  
response  
requests. get ( ' http/ / hslib. com ',  
params params)  
若要查看构建后的完整地址也可输出查看。  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载