Tor 与 Pycurl 的使用?

发布于 2024-12-17 16:04:43 字数 321 浏览 1 评论 0原文

您好,我希望我的爬虫使用 Pycurl 来使用 Tor。我怎样才能做到这一点?我知道如何使用 httplib 来做到这一点

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()

请帮忙。

Hi I want my crawler using Pycurl to use Tor. How can I do that? I know how to do that using httplib

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()

Please help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨小墨 2024-12-24 16:04:43

在 Ubuntu 上,我可以使用 socks5 代理使 pycurltor 上运行:

import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, "http://whatismyipaddress.com/")
c.setopt(pycurl.PROXY, "127.0.0.1")
c.setopt(pycurl.PROXYPORT, 9050)
c.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)
c.perform()

不要忘记安装 tor

sudo apt-get install tor

检查tor是否已启动,您可以运行网络监控命令:

sudo netstat -lnptu

其中有类似这样的输出。请注意,tor位于127.0.0.1:9050套接字上

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:49017           0.0.0.0:*               LISTEN      2701/skype      
tcp        0      0 127.0.0.1:9050          0.0.0.0:*               LISTEN      1810/tor        
tcp        0      0 0.0.0.0:17500           0.0.0.0:*               LISTEN      2187/dropbox 

On Ubuntu I able to make pycurl works over tor using socks5 proxy:

import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, "http://whatismyipaddress.com/")
c.setopt(pycurl.PROXY, "127.0.0.1")
c.setopt(pycurl.PROXYPORT, 9050)
c.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)
c.perform()

Don't forget to install tor

sudo apt-get install tor

To check that tor started you can run network monitoring command:

sudo netstat -lnptu

Which have something like this output. Please note that tor is on 127.0.0.1:9050 socket

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:49017           0.0.0.0:*               LISTEN      2701/skype      
tcp        0      0 127.0.0.1:9050          0.0.0.0:*               LISTEN      1810/tor        
tcp        0      0 0.0.0.0:17500           0.0.0.0:*               LISTEN      2187/dropbox 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文