python3连接tor爬取暗网的一种实现方法
Posted ssssdl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3连接tor爬取暗网的一种实现方法相关的知识,希望对你有一定的参考价值。
requests+tor+privoxy
踩了一些坑,也不一定是最好的实现方式,交流分享一下
配置
使用ubuntu1904
tor
多级代理,连接DeepWeb
安装
更新系统,安装tor及相关依赖
apt-get update
apt-get install tor git bison libexif-dev
配置
vim /etc/tor/torrc
# 文档最后添加内容如下
ControlPort 9051
ControlListenAddress 127.0.0.1
CookieAuthentication 1
# 重启服务,查看tor状态
service tor restart
service tor status
tor
这里有几个要注意的点
- ControlPort 在
/etc/tor/torrc
里面说是管理端口不是Socks端口,后面连接socks端口依旧是默认的9050,可以添加SocksPort 9050
修改成其他端口。 - 关于认证,配置认证可以在脚本里面使用已经写好的工具进行管理tor,但是一般需求就是换ip,可以通过
os.system(‘service tor restart‘)
简单有效的实现(可能会有效率问题,以后遇到处理),所以我这边就省去了tor --hash-password XXX
等操作,有需要的话可以参考下面的连接
privoxy
将socks5的代理转http代理
安装
apt-get install privoxy
配置
vim /etc/privoxy/config
# 添加一条转换规则,注意后面的.,一般搜索forward-socks5t,解除前面的注释就行,或者找到一条类似的修改一下,9050是tor的SocksPort
forward-socks5t / 127.0.0.1:9050 .
# 重启服务,查看状态
service privoxy restart
service privoxy status
默认端口8118,配置文件中可以修改
python3-requsests
测试脚本
import os
import requests
#代理
proxies = {'http': 'http://127.0.0.1:8118', 'https': 'http://127.0.0.1:8118'}
s = requests.Session()
# 打印当前ip
r = s.get("http://api.ipify.org?format=json", proxies = proxies)
print(r.text)
# 访问暗网duckduckgo
r = s.get("https://3g2upl4pq6kufc4m.onion/", proxies = proxies)
print(r.text)
# 切换ip
os.system('service tor restart')
# 打印当前ip
r = s.get("http://api.ipify.org?format=json", proxies = proxies)
print(r.text)
相关连接
感谢各位大佬博客供学习
以上是关于python3连接tor爬取暗网的一种实现方法的主要内容,如果未能解决你的问题,请参考以下文章