简要介绍对暗网爬虫的实现思路:

  1. 在外网服务器安装tor代理,
  2. 在本地tor浏览器配配置好代理
  3. 通过selenum驱动tor浏览器对暗网访问(2也可在此步骤中实现)
  4. 抓取自己想要的数据 以中文暗网站点为例,其入口地址如下: http://almvdkg6vrpmkvk4.onion http://lei6ezsexd4iq2tm.onion http://ctmqke52e6ivopoi.onion http://deepmix5e3vptpr2.onion http://deepmix3m7iv2vcz.onion http://deepmix2j3cv4bds.onion http://deepmix2z2ayzi46.onion http://deepmix7j72q7kvz.onion http://bmp3qqimv55xdznb.onion http://57p3c2zxtnhokfap.onion

访问后会出现,配置示意图

开发组件:

  • selenium
  • tor浏览器
  • geckodriver.exe

安装tor

运行环境为python,需要安装软件包为

  • tor的安装
apt install  tor
vi /etc/tor/torrc # 配置tor的监听IP端口等SocksPort
systemctl stop tor
  • 关联的文件的安装(需要支持socks5h)
sudo apt install python3-pip
pip3 install requests
pip3 install  PySocks(新版本的requests,直接支持了)

tor配置文件

# 文件位置,允许所有的IP访问  /etc/tor/torrc
SOCKSPort 0.0.0.0:6666
# 排除一些国家tor节点
ExcludeExitNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu}
StrictNodes 1
# 重启tor服务
service tor restart

tor brower配置

选择使用代理访问互联网 在填入tor IP地址,填入tor端口,选择socks5

测试是否在tor网络

  • https://check.torproject.org/

Selenium + tor brower主要代码


fireFoxOptions = webdriver.FirefoxOptions()
fireFoxOptions.set_preference("network.proxy.type", 1)
fireFoxOptions.set_preference("network.proxy.socks", "1.202.103.210")
fireFoxOptions.set_preference("network.proxy.socks_port", 6666)
fireFoxOptions.set_preference("javascript.enabled", False)#关闭js
#设置tor为firefox源
binary = FirefoxBinary('C:\\Tor\\Tor Browser\\Browser\\firefox.exe')
browser = webdriver.Firefox(firefox_options=fireFoxOptions , firefox_binary=binary)



参考

  1. https://secchur.ro/posts/tps
  2. https://github.com/C4o/ChineseDarkWebCrawler
  3. https://github.com/MikeMeliz/TorCrawl.py
  4. http://python.jobbole.com/86992/
  5. https://kushaldas.in/posts/using-python-to-access-onion-network-over-socks-proxy.html
  6. https://python-selenium-zh.readthedocs.io/zh_CN/latest/1.%E5%AE%89%E8%A3%85/