简要介绍对暗网爬虫的实现思路:
- 在外网服务器安装tor代理,
- 在本地tor浏览器配配置好代理
- 通过selenum驱动tor浏览器对暗网访问(2也可在此步骤中实现)
- 抓取自己想要的数据 以中文暗网站点为例,其入口地址如下: 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)
参考
- https://secchur.ro/posts/tps
- https://github.com/C4o/ChineseDarkWebCrawler
- https://github.com/MikeMeliz/TorCrawl.py
- http://python.jobbole.com/86992/
- https://kushaldas.in/posts/using-python-to-access-onion-network-over-socks-proxy.html
- https://python-selenium-zh.readthedocs.io/zh_CN/latest/1.%E5%AE%89%E8%A3%85/