8

我正在 AWS 托管服务器上运行一些网络爬取作业。爬虫从电子商务网站抓取数据,但最近爬虫从该网站获取“超时错误”。该网站可能根据我的 IP 地址限制了我的访问频率。分配一个新的弹性 IP 地址可以解决问题,但不会长久。

我的问题:是否有任何服务可用于自动和动态地分配新 IP 并将其关联到我的实例?谢谢!

4

2 回答 2

6

要更改 EIP,您只需使用 Python boto

像这样的东西:

#!/usr/bin/python

import boto.ec2

conn = boto.ec2.connect_to_region("us-east-1",
    aws_access_key_id='<key>',
    aws_secret_access_key='<secret>')


reservations = ec2_conn.get_all_instances(filters={'instance-id' : 'i-xxxxxxxx'})
instance = reservations[0].instances[0]

old_address = instance.ip_address
new_address = conn.allocate_address().public_ip

conn.disassociate_address(old_address)
conn.associate_address('i-xxxxxxxx', new_address)
于 2014-04-08T19:47:02.443 回答
1

如果您想使用 TOR 网络,只需执行:

sudo apt-get install tor 
sudo /etc/init.d/tor start

 netstat -ant | grep 9050 #  Tor port

在您的 java 项目中,您将代理设置为:

public static void main(String[] args) {
    System.setProperty("socksProxyHost", "127.0.0.1");
    System.setProperty("socksProxyPort", "9050");

您可以安排一个 cron 作业,每次 XX 时间重新启动您的应用程序和 tor。

简单又安全。

于 2014-04-08T20:22:10.223 回答