在网络抓取期间如何假装在某个国家/地区?

时间:2019-07-14 12:55:41

标签: python web-scraping scrapy user-agent

我想抓取一个网站,但它看起来应该像我来自某个特定的国家(在本示例中为“美国”)(以确保我的结果有效)。

我正在使用Python(Scrapy)。对于抓取,我使用的是轮换用户代理(请参阅:https://pypi.org/project/scrapy-fake-useragent-fix/)。

用户代理是我需要抓的东西。但是,我可以结合要求假装自己在特定国家/地区使用吗?

如果有某些可能性(Python中为scrap之作),请告诉我。感激!

示例如何在脚本中使用用户代理

DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware': 400,
}

3 个答案:

答案 0 :(得分:1)

要假装某个国家/地区,您需要该国家/地区的IP。不幸的是,您仅可以通过scrapy设置等进行配置。但是您可以使用像crawlera这样的代理服务:

https://support.scrapinghub.com/support/solutions/articles/22000188398-restricting-crawlera-ips-to-a-specific-region

注意:不幸的是,这项服务不是免费的,最便宜的计划约为25欧元。还有许多其他更便宜的服务。 Crawlera昂贵的原因是它们提供了禁止检测功能,并且只为您选择的域提供良好的IP。我发现它们对于亚马逊和Google的成本非常有用。尽管在较小的域上,更便宜的服务和无限的服务会更合适。

答案 1 :(得分:0)

您可以使用Selenium(不知道Scrapy)来执行此操作,首先告诉该机器人进入以下siteProxy Site

然后将您的目标站点添加到搜索框中并进行刮取。

答案 2 :(得分:0)

Hello @helloworld1990,

Based on your requirement, say if you want to make each request using different IPs i.e. use IP Rotation (used when the site is detecting and blocking you after certain requests) then go for "Proxy Providers" there are many such providers you just need to google them.

If its not the case above, then for short term use you can try using TOR IPs. But TOR IPs are well known and are generally blocked. Else, you can still buy few static IPs from Proxy Providers and make the requests.

if(uniqueIpForEachRequestFromDifferentGeoLocations){
//go for proxy providers - IP Rotation
}else{
if(shortTermUse){
//go for tor nodes
}else{
//go for static IPs`enter code here`
}
}

Cheers! Hope this helps..