0

现在这是脚本:

import json
import urllib2  

with open('urls.txt') as f:
    urls = [line.rstrip() for line in f]
with open('proxies.txt') as proxies:
    for line in proxies:
        proxy = json.loads(line)
        proxy_handler = urllib2.ProxyHandler(proxy)
        opener = urllib2.build_opener(proxy_handler)
        urllib2.install_opener(opener)
        for url in urls:
            data = urllib2.urlopen(url).read()
            print data

这是 urls.txt 文件:

http://myipaddress.com

和 proxies.txt 文件:

{"https": "https://87.98.216.22:3128"}
{"https": "http://190.153.7.189:8080"}
{"https": "http://125.39.68.181:80"}

我在http://hidemyass.com得到的

我一直在尝试通过终端输出(一堆html)来测试它,并查看它是否在某处显示IP地址并希望它是代理IP之一。但这似乎不起作用。根据 ip 识别站点,它要么引发连接错误,要么告诉我必须输入验证字母(尽管通过浏览器查看的站点工作正常)。

那么我会以最好的方式解决这个问题吗?有没有更简单的方法来检查 url 看到的 IP 地址?

编辑:我在其他地方(在另一个论坛上)听说,检查 url 是否从不同的 ip 访问的一种方法是检查交叉标头(如 html 标头表明它已被重定向)。但我找不到更多信息。

4

1 回答 1

2

您可以像这样使用更简单的网站。例子:

代码:

import json 
import urllib2

with open('urls.txt') as f:
    urls = [line.rstrip() for line in f]
with open('proxies.txt') as proxies:
    for line in proxies:
        proxy = json.loads(line)
        proxy_handler = urllib2.ProxyHandler(proxy)
        opener = urllib2.build_opener(proxy_handler)
        urllib2.install_opener(opener)
        for url in urls:
            try:
                data = urllib2.urlopen(url).read()
                print proxy, "-", data 
            except:
                print proxy, "- not working"

网址.txt:

http://api.exip.org/?call=ip

代理.txt:

{"http": "http://218.108.114.140:8080"}
{"http": "http://59.47.43.93:8080"}
{"http": "http://218.108.170.172:80"}

输出:

{u'http': u'http://218.108.114.140:8080'} - 218.108.114.140
{u'http': u'http://59.47.43.93:8080'} - 118.207.240.161
{u'http': u'http://218.108.170.172:80'} - not working
[Finished in 25.4s]

注意:这些都不是我的真实 IP。

或者,如果您想使用http://myipaddress.com,您可以使用 BeautifulSoup,通过提取包含您 IP 的准确 HTML 元素

于 2013-08-21T12:27:01.120 回答