我正在尝试使用Python编写的爬虫来抓取网站.我想将Tor与Python集成,这意味着我想使用Tor匿名抓取该站点.
我试过这样做.它似乎不起作用.我检查了我的IP,它仍然与我使用tor之前的IP相同.我通过python检查了它.
import urllib2
proxy_handler = urllib2.ProxyHandler({"tcp":"http://127.0.0.1:9050"})
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
Run Code Online (Sandbox Code Playgroud)
Dmi*_*kov 21
您正在尝试连接到SOCKS端口 - Tor拒绝任何非SOCKS流量.您可以通过中间人 - Privoxy - 使用端口8118进行连接.
例:
proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
opener = urllib2.build_opener(proxy_support)
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
print opener.open('http://www.google.com').read()
Run Code Online (Sandbox Code Playgroud)
另请注意传递给ProxyHandler的属性,没有http前缀为ip:port
pip install PySocks
Run Code Online (Sandbox Code Playgroud)
然后:
import socket
import socks
import urllib2
ipcheck_url = 'http://checkip.amazonaws.com/'
# Actual IP.
print(urllib2.urlopen(ipcheck_url).read())
# Tor IP.
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9050)
socket.socket = socks.socksocket
print(urllib2.urlopen(ipcheck_url).read())
Run Code Online (Sandbox Code Playgroud)
仅仅使用urllib2.ProxyHandler
在/sf/answers/141095461/失败:
Tor is not an HTTP Proxy
Run Code Online (Sandbox Code Playgroud)
在Ubuntu 15.10,Tor 0.2.6.10,Python 2.7.10上测试.
也许您遇到一些网络连接问题?上面的脚本对我有用(我替换了一个不同的 URL - 我使用过http://stackoverflow.com/
- 我得到了预期的页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" >
<html> <head>
<title>Stack Overflow</title>
<link rel="stylesheet" href="/content/all.css?v=3856">
Run Code Online (Sandbox Code Playgroud)
(ETC。)
归档时间: |
|
查看次数: |
44087 次 |
最近记录: |