码迷,mamicode.com
首页 > 编程语言 > 详细

python3连接tor爬取暗网的一种实现方法

时间:2019-10-11 18:07:00      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:安装   rest   依赖   访问   ddr   war   sock   sha   lock   

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爬取暗网的一种实现方法

标签:安装   rest   依赖   访问   ddr   war   sock   sha   lock   

原文地址:https://www.cnblogs.com/ssssdl/p/11655762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!