Darknet爬虫python

时间:2016-10-30 07:02:24

标签: python python-2.7 web

我正在尝试将一个简单的网络抓取工具写入“Darknet”网络。 我的第一步是使用python脚本到暗网。 我尝试了很多答案,但没有答案。

我做了什么:我以root身份安装了Tor docker 在正确配置后,我成功通过常规浏览器访问此站点 我成功地使用我的脚本获取check.torproject.org
我在VM上运行ubuntu 16.04

我现在的代码是:

import socks
import ssl
import requests.cert

s = socks.socksocket()
s.setproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", port=9050)
s.connect(('https://nzxj65x32vh2fkhk.onion/all', 443))
ss = ssl.wrap_socket(s, cert_reqs=ssl.CERT_REQUIRED, ca_certs="requests.cert.where()")

print "Peer cert: ", ss.getpeercert()

ss.write("""GET / HTTP/1.0\r\nHost:https://nzxj65x32vh2fkhk.onion/all\r\n\r\n""")

content = []
while True:
    data = ss.read()
    if not data: break
         content.append(data)


ss.close()
content = "".join(content)
assert "This browser is configured to use Tor" in content

我认为我现在的问题是因为http s 而不是http(我应该更改端口吗?)

任何更好的解决方案? 任何探索如何做到这一点? 感谢

我检查了所有这些问题而且没有工作 - Python urllib over TOR?How to route urllib requests through the TOR network?Using SocksiPy with SSL
(我在评论中看到,我不是唯一一个没有为他效劳的人。)



我所需要的只是让这个“讨论”贴上..

1 个答案:

答案 0 :(得分:0)

facebook几乎是暗网上唯一支持HTTPS的服务器。除此之外,您应该使用 http 和端口 80 。此外,requests模块 - 任何python webscraping堆栈的重要组成部分 - 支持socks代理。您可以通过请求执行类似的操作:

url = "http://nzxj65x32vh2fkhk.onion/all"
proxy = {"http": "socks5://localhost:9050", "https": "socks5://localhost:9050"}

r = requests.get(url, proxies=proxy)