Do you get IP flagged while scraping using scrapy, If so, you do really need the proxies for scrapy, Which type of proxies are the best for scrapy and how to set proxy for scrapy? Let's find out…
抓取技术已经存在了相当长的一段时间。其起源可以追溯到早期的网站,当时用户需要在最短的时间内从网站上抓取大量数据。
尽管当时的在线数据量少得多,但刮擦器仍然开始存在。随着在线数据开始呈指数级增长,对更复杂的刮擦工具的需求也随之增加。曾经简单的提取工具变成了从网站上搜刮数据的复杂服务。
如今可能有数以百计的刮泥机。这么多的选择可能会让一些人感到困惑,但与此同时,它在价格和功能方面也提供了极大的多样性。每个人都有适合自己的刮板。在我们深入探讨这个话题之前,先为不熟悉的人介绍一下。
什么是 Scrapy?
Scrapy 是一款免费的开源网络搜刮工具。 该服务使用 Python 编写,与 import.io 等竞争对手不同,它是一个在终端运行的网络爬虫。这意味着,你不会获得一个带有花哨闪亮按钮的用户界面;相反,你必须用老式的方法进行编码。
相关、 基本 Python 网络抓取工具
返回菜单 ↑什么是代理?
代理服务器与互联网本身一样古老。代理服务器是您和您发送请求的网站之间的中间人。简单地说,请求从你的电脑发送到代理服务器,然后从那里被重定向到你要发送请求的网站服务器。
返回菜单 ↑为什么 Scrapy 需要代理?
现在你可能会问,代理和刮擦器有什么共同点?
事实上,有很多。没有代理,网络搜刮器就无法工作。刮擦网站时,每秒钟都会向服务器发出大量请求。 如果从您的家庭 IP 地址执行此操作,您将 被标记和禁止 顷刻间.原因是没有人能够手动发出这么多请求,因此服务器知道有一个刮擦程序在潜伏。
解决这一问题的方法就是代理。它们可以让您从不同的 IP 地址发出多个请求,为您提供无缝的搜索体验。
代理在搜索器中的另一个用途是地理定位。如果您要搜刮的网站仅限于某一特定地点,而您不在该地点,则无法访问该网站。
例如,您可能位于欧洲,但想搜索一个不允许美国以外的人访问的美国网站。代理可以为您打开这扇门。
与某些竞争对手不同的是,Scrapy并不自带代理服务器。相反,你必须自行设置。毕竟,这是一项免费服务,而免费的东西从来都不是真正免费的。在这种情况下,搜刮器是免费的,但你需要为代理服务付费。
返回菜单 ↑Scrapy 的旋转代理
说到这里,如果您不确定该选择哪家代理提供商,别担心,有很多代理提供商。 光辉, Smartproxy, Stormproxies, 微波 这些只是您可以选择的大量代理服务中的一小部分。
关于代理,我们的建议是使用 旋转式住宅.它们基本上都是人们的家庭 IP 地址,大多数代理服务提供商都会根据您的要求实施自动轮换算法。这是一种更好的方法,因为数据中心代理通常已经被标记为代理,所以很多服务器都会知道这一点。
此外,提供商还将 自动旋转代理 因此,您无需更改代理服务器中的其他设置。不过要注意,住宅代理服务器比数据中心代理服务器更贵。
返回菜单 ↑如何为 Scrapy 添加代理?
现在我们来谈谈今天文章的主题--如何为 Scrapy 添加代理?
有两种方法可以做到这一点,而且都很简单。您可以将代理详细信息作为参数添加,或者使用自定义代理中间件。
参数
刮擦时,你需要设置几个基本参数,其中包括刮擦数据的 URL、标题和回调函数(并非总是如此)。如果要在其中添加代理,则需要设置一个队列参数,如下所示:"meta={"proxy":"地址:端口"}"。您可以在头参数下面添加这一行,并用代理提供商提供的地址和端口替换 "address:port"。
中间件
这是一个分两步走的过程,但仍然相当简单。您需要创建自己的自定义中间件并启用它。
首先,创建中间件。
类 ProxyMiddleware(对象):
def process_request(self, request, spider):
request.meta["proxy"] = "address:proxy"
request.headers["Proxy-Authorization"] =
basic_auth_header("user", "pass")
在本课中,有几项内容需要定义:代理地址和端口以及身份验证信息(用户名和密码)。将这些信息替换为正确的信息后,就可以使用了。
下一步是启用中间件。为此,需要在 SPIDER_MIDDLEWARE 设置中添加以下内容:
下载器中间件 = {
‘myproject.middlewares.ProxyMiddleware': 350,
‘scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 400,
}
确保将此添加到 HttpProxyMiddleware 的上方。
完成这两个步骤后,您就可以开始工作了。
测试代理
通常情况下,人们在开始搜索时会发现他们的代理不起作用。出现这种情况的原因有很多,我们就不一一赘述了。相反,我们可以建议您先试运行一下,看看您的代理是否真的在工作。
最简单的方法是在显示您 IP 地址的网站上运行几个会话。
这只是您可以使用的几种方法。
运行搜索并检查结果。如果得到的是你的家庭 IP 地址,那就意味着出了问题,你需要仔细检查你的搜索器。否则,您就可以使用了。
结论
多年来,代理服务器一直在帮助人们摆脱 IP 地址被禁的厄运。这就是为什么我们可以从网站上抓取大量数据而不被发现或列入黑名单的原因。如果你使用 Scrapy,我们的指南将帮助你将自定义代理添加到你的搜刮工具,并抓取你需要的所有数据。
相关、