【问题标题】:Fixie: Static IP Address with HerokuFixie:使用 Heroku 的静态 IP 地址
【发布时间】:2020-06-10 19:58:20
【问题描述】:

我有一个由 heroku 托管的网络抓取应用程序。我总是在 heroku 上得到 403 错误,但是如果我在本地运行代码,页面可以正常工作。我认为这个错误是由于 Heroku 动态 IP 造成的。我安装了 Fixie,我希望蜘蛛从静态地址发送请求。怎么做?

蜘蛛:

yield scrapy.Request('https://www.ratemds.com/best-doctors/?specialty=%s' % specialty, callback=self.profile_link, 
                                    headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.50747 OPRGX/60.0.3255.50747"},
                                    meta={"proxy": "http://fixie:XkWpxhGyIgZq454@velodrome.usefixie.com:80"})

Heroku CLI:

E:\Python\heroku3>heroku config:get FIXIE_URL
http://fixie:XkWpxhGyIgZq454@velodrome.usefixie.com:80

【问题讨论】:

  • “我认为这个错误是由 Heroku 动态 ip 造成的”——是什么让你这么认为?更有可能是 Heroku / AWS block 可以使用的 IP。
  • 我该如何解决这个问题?
  • 我们仍然没有足够的信息来了解问题所在。如果它是我建议的 IP 范围,唯一的解决方案是在其他地方托管。但这可能无法解决问题:如果被抓取的站点正在阻止 Heroku / AWS 范围,那么它可能也阻止了大多数其他大型主机。

标签: heroku scrapy


【解决方案1】:

我认为该网站可能阻止了您的 IP,您可以使用代理绕过它(就像您配置 fixie 一样)。

Fixie 在您的应用程序之上设置代理,因此您可以使用静态 IP 访问其他站点,这意味着您每次访问的站点都具有相同的 IP。 (某些)网站阻止“不定期”访问它们的 IP 是很正常的,因为它们怀疑它们是机器人。

上一个问题的解决方案是让您的爬虫随机使用多个代理来处理对这些网站的请求,或者使用代理轮换器服务自动为您执行此操作,您只需配置一个代理(就像您所做的那样带固定器)。

我注意到的另一件事是,您共享的网站无法通过美国以外的 IP 访问(我无法进入,不是在使用美国 VPN 之后),因此请确保首先 Fixie 为您提供美国静态IP。如果您确定 Fixie 正在这样做,那么您很有可能必须使用代理轮换服务,并确保他们在您请求时为您提供美国代理。

【讨论】:

    猜你喜欢
    • 2014-01-02
    • 2020-07-29
    • 2012-04-01
    • 2020-04-26
    • 1970-01-01
    • 2018-11-04
    • 2021-10-15
    • 2022-11-11
    • 2016-08-27
    相关资源
    最近更新 更多