shadow_spider:python中使用tor进入暗网

浏览: 15991

标签: deep web python3 win10

TA:

郭柱明 15331094 sysu 系统分析作业5

这次本来想交简书上的,但是这篇文章在简书被封了。。。


暗网蜘蛛,本项目github地址


shadow_spider


暗网

暗网(英语:Darknet或Dark Web)通称只能用特殊软件、特殊授权、或对电脑做特殊设置才能连上的网络,使用一般的浏览器和搜索引擎找不到暗网的内容


在python上进入暗网


在python中进入暗网需要配置tor代理,因为本人使用的win10,所以主要讲在win10下配置tor代理


下载准备:(除了下载给出的下载链接,本人此项目github也提供相关资源下载 下载链接

  1. 首先下载tor expert bundle 官方下载链接 本人提供的百度云链接,密码: fsp8 下载解压

  2. 下载到的tor expert bundle没有图形界面,使用起来不方便,因此需要下载Vidalia配合使用 本人提供的百度云链接,密码: kknf

  3. cow下载,百度云连接,密码: c4kx。 由于tor使用的协议是socks5,由于需要python的requests和selenium两个模块进行get, post请求。但是经过本人尝试,requests对socks5协议代理支持是很不良好的,使用requests加上socks5协议代理去get类似于 https://api.ipify.org/?format=json 这样查询ip的url是没有问题的,但是去get其他url或者暗网的url马上会出现莫名其妙的错误。所以需要使用cow把tor的socks5协议转为http协议


配置


我们要配置上面下载到的工具,使得我们的代理路线如下: net1,解压下载下来的tor expert bundle

2,开启你的vpn,本人使用的green vpn,socks5协议,监听1080端口

3,安装vidalia,安装后如图所示:

vidalia

然后以管理员身份运行Start Vidalia.exe

vidalia run

点击设定,在常规那里选中vidalia启动时运行tor软件,并在下面的路径中找到解压tor expert bundle后得到的tor.exe

setting1

点击网络,选中我使用代理服务器连接网络,由于本人使用的green vpn是监听本地的1080端口,所以地址写为:127.0.0.1,端口写为:1080(貌似shadowsocks等vpn也是监听本地1080端口)

setting2

点击高级,在tor配置文件下选中vidalia安装后得到的Data/Tor/torrc文件,在数据目录那里选中Data文件夹(貌似我是多余地自己另外创建了一个Data文件夹给它,但是并不影响,有一个Data文件夹给vidalia存储数据就可以了)

setting3

点击确认

点击启动tor

run

稍等片刻,显示连接tor网络成功!

connect

因为需要在requests模块上使用tor代理而requests模块对socks5支持非常不良好,所以我们需要配置cow把socks5转为http 打开解压后的cow目录:

cow

修改rc.txt内容为如下:

rc

点击运行cow.exe或者点击cow-hide.exe后台运行


在python中使用tor代理


再次重申上面配置好的代理结构:

net

能否正常使用tor代理一个很好的检验方法就是能否进入暗网,这是一个收集了很多暗网url的网站:https://onionlinks.org/

我给出一个暗网url:http://hcutffpecnc44vef.onion/ 这是一个暗网的金融网站,普通的上网方式是打不开的,作为一个大哥哥,真心建议18-的小朋友还是不要去看暗网一些其他内容,为了你的身心健康。那下面的测试就是在python中进入这个暗网url为检验标准。

cash machine

在requests中进入暗网: 新建一个test.py,输入以下内容:

import requests
proxies = {'http': 'http://127.0.0.1:7777', 'https': 'http://127.0.0.1:7777'}
s = requests.Session()
r = s.get("http://hcutffpecnc44vef.onion/", proxies = proxies)
print(r.text)
f = open("onion.html", "wb")
f.write(r.content)
f.close()

运行,发现可以打印这个暗网网页的内容出来了:

run test

打开test.py同一目录下,生成了一个onion.html的文件,点开,发现把内容也下载下来了:

get

在python的selenium模块的模拟浏览器phantomjs中进入暗网 selenium有三种,chrome,firefox,phantomjs,前两种有图形界面,第三种没有图形界面,所以我选中phantomjs

phantomjs下载: 本人github上的下载下载链接 本人百度云下载链接,密码: pj81

这次我们选择另一个暗网url:http://zqktlwi4fecvo6ri.onion/wiki/index.php/Main_Page 这是一个暗网wiki,上面有很多分类好的暗网url,各位要谨慎点开那些url,因为不少内容不健康的。 下载phantomjs解压,新建一个test2.py文件(下面的executable_path是上面下载解压phantomjs得到的phantomjs.exe运行文件的路径)

from selenium import webdriver

executable_path = "C:/Users/Administrator/Downloads/phantomjs-2.1.1-windows/phantomjs-2.1.1-windows/bin/phantomjs.exe"
service_args = ['--proxy=127.0.0.1:7777', '--proxy-type=http']

driver = webdriver.PhantomJS(executable_path = executable_path, service_args = service_args)

driver.get("http://zqktlwi4fecvo6ri.onion/wiki/index.php/Main_Page")

print(driver.page_source)

f = open("onion.html", "wb")
f.write(driver.page_source.encode("utf-8"))
f.close()

结果也可行:

run test2 wiki


本人的shadow_spider项目(未完待续)


项目github地址 本项目目的在于最大程度还原暗网上网页的内容,这就意味着需要:

注意要点:

  • 下载html
  • 在下载html之前必须加载javascript。因为javascript里面会有ajax,如果把javascript下载下来,而不是加载完javascript再下载html,那么下载到本地ajax向tor网络(暗网)中的服务器发送网络请求,这是行不通的。所以必须加载完javascript再下载html(网上有人说暗网上的网页都没有javascript,但是经本人尝试,暗网上的网页是有javascript的)。而python里加载javascript一个很好的工具就是上面的selenium
  • 下载css和图片等静态资源,需要使用requests模块,不能使用selenium。selenium下载图片和css等资源是很蛋疼的。因为这些模拟浏览器要下载资源就必须做到模仿我们在真的浏览器上那样右键另存为等操作,而这时候会弹出下载确认的弹窗,而selenium中的chrome和firefox是需要手动点击代码运行过程中弹出来的确认保存弹窗的,而phantomjs没有图形界面,所以就根本下载不图片和css等资源。

代码细节不详细说了,在我的github中下载到本地,输入:

pip install -r requirements.txt

安装需要的响应模块

运行main.py文件,输入一个暗网url:

run main

下载到本地的结果:

result

下面是一些暗网网页真实模样和我还原的样子: 真实1:

real1

还原1:

imitate1

真实2:

real2

还原2:

imitate2

此项目shadow_spider未完待续,等到暑假回会改进和考虑添加服务端。

推荐 7
本文由 gzmPy 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

6 个评论

学习
抱歉,在下载我的代码shadow_spider到本地后,需要在主目录下打开命令行输入pip install -r requirements.txt安装相应的模块,忘记说这个了,文章好像不能修改,所以这里说了。
梁勇

梁勇 回复 gzmPy

第一次听说暗网 ,可以修改的,点编辑修改即可
gzmPy

gzmPy 回复 梁勇

好的
您好,cow Vidalia 的下载链接方便发一下吗 百度网盘失效了~
大哥,cow下载链接方便发一下吗,百度网盘失效了

要回复文章请先登录注册