正向代理: 机器通过该机器访问外部网络. 本例: 使用爬虫去抓取网络数据.但抓取过多时会被封IP.于是, 在一个机器上绑定若干个 IP. 抓取时使用代理. 当然, 可以使用其它代理机器.但这里我们是使用的代理到本机. 在本机上绑定了 4 个 IP. 同时运行四个抓取实例. 每一个都使用代理, 代理到本机不同的端口. 机器上绑定若干 IP 的方式: http://blog.sina.com.cn/s/blog_5f54f0be0101josm.html Squid 基本介绍: http://blog.sina.com.cn/s/blog_5f54f0be0101jp2f.html 本机上的 IP 分别是: 42.55.153.1 42.55.153.2 42.55.153.3 42.55.153.4 分别使用端口: 44881 44882 44883 44884 squid 配置: /etc/squid/squid.conf: # 在代理的时候去掉请求头部.再另行添加代理后的头部 forwarded_for delete via Deny all # 允许本机访问.如果不加,可能不成功 http_access allow localhost # 定义本机上的各个 IP acl ip1 myip 42.55.153.1 acl ip2 myip 42.55.153.2 acl ip3 myip 42.55.153.3 acl ip4 myip 42.55.153.4 # 定义本机上的各个端口 acl p1 myport 44881 acl p2 myport 44882 acl p3 myport 44883 acl p4 myport 44884 # 让 squid 监听本机的各个端口 http_port 44881 http_port 44882 http_port 44883 http_port 44884 # 定义从 squid 代理往外的数据, 每个 ip 分别使用哪个端口 tcp_outgoing_address ip1 p1 tcp_outgoing_address ip2 p2 tcp_outgoing_address ip3 p3 tcp_outgoing_address ip4 p4 把上面的配置加到当前的配置文件上部即可. 配置完后重启 squid 服务. 然后再配置爬虫软件使用代理,使用相应的 IP 和端口. 当使用 44881 端口时, 出口使用的 IP 是 ip1. 按上面的 tcp_outgoing_address 配置的规则. 依此类推, 这样, 同时运行四个任务,实际上出去的 IP 就是四个. 就不会被封了. (责任编辑:IT) |