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 架空绝缘导线标段的时间序列数据,然后针对物资领料数据特性改

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在面对反爬虫技术时,Scrapy可以采取一些措施进行反爬虫。其中一种方法是通过降低请求频率来模仿人类用户的行为。在Scrapy的配置文件settings.py中,可以设置DOWNLOAD_DELAY参数来指定请求的时间间隔。通过延迟请求,使得爬虫的行为更接近真实用户的访问频率。例如,设置DOWNLOAD_DELAY = 3,表示两次请求之间的间隔为3秒。此外,还可以使用随机延迟时间来避免请求过于规律,进一步增加爬虫被识别的难度。 另一种反爬虫的措施是修改Scrapy的User-Agent请求头。通过模拟不同的浏览器或设备类型,使得爬虫程序看起来更像是真实的用户在访问网站。这样可以绕过一些简单的反爬虫技术,如基于User-Agent的验证。可以在Scrapy的中间件中设置User-Agent的随机切换,或者使用代理IP来发送请求,增加请求的多样性,提高反爬虫的成功率。 此外,如果网站使用了robots.txt文件来限制爬虫访问,Scrapy可以通过在配置文件settings.py中取消ROBOTSTXT_OBEY的注释来忽略对robots.txt文件的遵守。这样可以强行爬取站点信息,绕过对爬虫的限制。例如,取消如下代码的注释:ROBOTSTXT_OBEY = False。 综上所述,通过降低请求频率、修改User-Agent请求头以及忽略robots.txt文件,Scrapy可以采取一些反爬虫的措施来应对网站的反爬虫技术。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python Scrapy反爬虫常见解决方案(包含5种方法)](https://blog.csdn.net/qq_30235073/article/details/96073042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Python scrapy 爬虫入门(七)突破反爬虫技术](https://download.csdn.net/download/weixin_38670707/13749305)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值