scrapy微博反爬虫_基于Scrapy的微博爬虫设计

Data Base Technique • 数据库技术 Electronic Technology & Software Engineering 电子技术与软件工程 • 187 【关键词】Scrapy 爬虫 微博 微博自诞生之日起就获得迅猛发展。截至2017年9月,新浪微博的活跃用户高达3.76亿,较之去年同期增长 27%。微博作为网民交流互动的平台,时刻产生着大量的数据,对于研究具有重要意义。当前通过微博开放接口(API)获取数据存在诸多的限制,而且流程复杂、速 度较慢。 Scrapy 是为爬取网络结构性数据而编写 基于 Scrapy 的微博爬虫设计文/张安启 罗批 新浪微博是数据的重要发源地。为实现数据快速抓取,本文在研究反爬机制的基础上,设计了基于 Scrapy 的微博爬虫,并对各模块进行了详细阐述。实验表明,该爬虫具有支持关键字匹配、速度快、简单的特点。为研究者提供了快速、准确、方便地获取微博数据的途径。 摘 要 的应用框架,具有简单、模块清晰的特点。Scrapy 框架对于设计爬取新浪微博数据的爬虫具有十分重要的意义。本文研究了当前微博的反爬机制,并对该机制制定了相应的策略。并依此设计了基于 Scrapy 的微博爬虫。并通过实验验证了设计的爬虫的有效性。 1 当前的反爬虫机制 当前的反爬机制主要有以下四种: (1)IP 地址的限制。微博服务器对登录网站的 IP 地址进行监测,如果某一个 IP 地址访问频率过高或者持续时间过久,就会判定使用该 IP 的用户为爬虫并对该 IP 进行封锁。令其无法访问微博或者通过验证后方可进行访问。 (2)浏览器的限制。浏览器的标识存在于 headers 属性当中。如果检测到某一个浏览器频繁地访问,便会封杀该浏览器。 (3)对账号的限制。因为一个人不可能频繁大量长时间地访问微博,因此如果某一账号频繁不间断的访问微博,该账号就需要重新 验证方可继续访问。 (4)对访问频率的限制。由于爬虫浏览速率非常快,高于普通人浏览网页的几十倍甚至上百倍。因此,如果访问频率过高,也会将其判定为爬虫,对其要求进行验证。 由此可见,当前的反爬机制主要是通过对正常网民行为进行识别。当某个网民的行为与正常网民的行为不一致的时候,就会判定该网民为爬虫。因此,为了应对反爬虫机制,就应该让爬虫行为与正常用户行为更为相似。 2 应对反爬虫的策略 针对微博的反爬虫策略,在此制定防止 反爬虫的设计。 (1)建立由多个 IP 地址组成的 IP 池。每进行一次新的页面访问,从 IP 池中随机抽取一个 IP 地址。这样可以避免某个 IP 地址被封杀。 (2)建立多个移动浏览器标识的客户端类型池。由于当前人们习惯于使用手机等移动设备上网,因而使用移动设备浏览器登录网站 四种模式的项目数量占比分别为46.86%、39.97%、2.78% 和 10.37%。而且每种模式存在一个最大比例标段(反映了项目的主要类型)。由表 3 易知,配变新增类型的项目主要有以10kV 非晶合金变压器、10kV 油浸式变 压器为主,数量占比高达 87%。 在对预测计划中配变新增类型的项目进行审核时,可先计算出各标段比例,进而匹配到最类似的模式,最后计算该比例与匹配模式聚类中心的距离,若超过阈值,则审核不通过。 3.5 协议库存物资预测 在对物资计划审核时,除审核物资比例外,还需对各标段金额总量进行审核,这就需要对协议库存的物资需求进行预测。当前应用较多的是时间序列预测模型,首先对历史数据进行统计,如图 2 所示为 10kV 架空绝缘导线标段的时间序列数据,然后针对物资领料数据特性改

你可能感兴趣的:(scrapy微博反爬虫)