我试着用tor抓取Python中的网站。我尝试了下面的代码,它给出了tor使用的IP,尝试了2-3次,得到了来自不同国家的不同的IP。我想要特定国家的知识产权,如印度,。我们能用托尔和袜子来做吗?
import socks
import socket
import urllib2
socks.setdefaultproxy(socks.PROXY_TYPE_HTTP, "127.0.0.1", 9050)
socket.socket = socks.socksocket
print urllib2.urlopen('http://my-ip.herokuapp.com').read()发布于 2015-01-20 12:03:00
要从特定国家获取ip,必须设置两个参数ExitNodes={countrycode}和StrictNodes=1.Here,用于印度国家代码是{in}.To知道国家代码检查http://www.b3rn3d.com/blog/2014/03/05/tor-country-codes/。使用python,您可以如下所示设置这些参数
代码:-
import socks
import socket
import urllib2
def newIdentity(self):
socks.setdefaultproxy()
s= socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("127.0.0.1", 9051))
s.send('AUTHENTICATE "my_password" \r\n')
response = s.recv(128)
if response.startswith("250"):
s.send("SETCONF ExitNodes={in}\r\n")
s.send("SETCONF StrictNodes=1\r\n")
s.send("SIGNAL NEWNYM\r\n")
s.close()
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket
if __name__ == '__main__':
newIdentity()
print urllib2.urlopen('http://my-ip.herokuapp.com').read()https://stackoverflow.com/questions/27957470
复制相似问题