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爬取暗网的一种实现方法的主要内容,如果未能解决你的问题,请参考以下文章

tor浏览器无法连接

暗网必备 - Tor 浏览器的下载/配置网桥

通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息

python学习之----深网和暗网

python3煎蛋网的爬虫

java实现网页爬虫