(二)暗网信息爬取(python)
来源:互联网 发布:用友nc mac客户端下载 编辑:程序博客网 时间:2024/06/05 00:29
首先要感谢舍友大佬提供的ShadowsocksR以及相应配置。感谢在本阶段帮助过我的学长学姐,谢谢。
暗网(深网,不可见网,隐藏网)是指那些储存在网络数据库里、不能通过超链接访问而需要通过动态网页技术访问的资源集合,不属于那些可以被标准搜索引擎索引的表面网络。
动态网页的url不固定,但可以被爬虫爬取,这是第一个点。
由于相关法律风险,本暗网爬虫代码不开源,但我会将我所理解的核心内容记录。
代码环境为ubuntu,使用语言python,使用库urllib2,socks, socket。
这里不用requests库,在参考许多教程如https://github.com/kennethreitz/requests/issues/3863/ 后发现,requests似乎无法使用socks5的代理端口,遂弃之
进入暗网的“门”为TorBrowser或者Tor
注意:torbrowser和tor并非一个东西,torbrowser是基于火狐浏览器的洋葱浏览器,通常用来做暗网入口,而且一般情况下已经足够了,但由于需要代码环境,我使用了纯Tor
以下是我的搭建步骤:
一,安装配置Tor
在ubuntu命令行输入
sudo apt-get install tor/etc/init.d/tor restart
启动后socks监听9050端口。
tor --hash-password mypassword
用来输入你的密码
编辑/etc/tor/torrc
在其中加上
ControlPort 9051RunAsDaemon 1Socks5Proxy 127.0.0.1:1080HashedControlPassword 16:872860B76453A77D60CA2BB8C1A7042072093276A3D701AD684053EC4C
让ControlPort监听9051端口,后边那个16:开头的hash就是上一步得到的。Socks5Proxy是可以使shadowsocks为tor的前端代理(我使用的shadowsocks的端口为1080)
最后重启tor
/etc/init.d/tor restart
(经过曲折的一番探索,可以基本断定,python的stem库控制tor,并不是控制tor浏览器,而是可以利用tor作为自己的匿名代理,或者监视tor的流量走向。stem库目测不能为暗网爬虫做出什么贡献)
二,设置前端代理shadowsocks
这一段本应该放在最前面,但由于本人的shadowsocks完全依靠了舍友的鼎力帮助,这一段还需要往后自己探索。
就本人理解,shadowsocks作为前端代理最主要的功能就是翻墙。。。
对外提供端口为1080。
三,利用Tor的9050端口爬取暗网。
使用urllib2库,socks库作为socks5代理,示例代码如下:
import socketimport socksimport urllib2ipcheck_url = 'http://checkip.amazonaws.com/'# Actual IP.print(urllib2.urlopen(ipcheck_url).read())# Tor IP.socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9050)socket.socket = socks.socksocketprint(urllib2.urlopen(ipcheck_url).read()
该代码引用自https://stackoverflow.com/questions/1096379/how-to-make-urllib2-requests-through-tor-in-python
四,总结
tor的本质也是一种socks5代理。所以爬取暗网信息的一个流程就是:
1,我们使用Tor的9050端口(如果你使用的是TorBrowser的话,对外监听端口为9150)
2,Tor使用shadowsocks的1080端口(翻墙)
3,代码环境,爬取内容。
参考博客、论文如下:
【1】http://zzi.io/?p=328
【2】https://github.com/kennethreitz/requests/issues/3863
【3】https://stackoverflow.com/questions/1096379/how-to-make-urllib2-requests-through-tor-in-python
【4】http://blog.csdn.net/yanzi1225627/article/details/51285075
- (二)暗网信息爬取(python)
- python 爬虫爬取所有上市公司公告信息(二)
- #python学习笔记#使用python爬取拉勾网职位信息(二):爬取数据
- python爬取网页信息
- python 爬取淘宝信息
- Python爬取国家信息
- Python-爬取网页信息
- Python爬取天气信息
- python爬取网页信息
- 用Python爬取拉钩网招聘职位信息
- Python爬虫--爬取赶集网的租房信息
- Python简单爬虫(爬取天气信息)
- Python 简单爬虫实现(爬取百度百科信息)
- 使用Python爬取学校学生信息!(简单爬虫)
- 用python爬取小说信息(简易版)
- python 爬虫爬取所有上市公司公告信息(一)
- python 爬虫爬取所有上市公司公告信息(三)
- python 爬虫爬取所有上市公司公告信息(四)
- 状压dp POJ3254+POJ1185
- 初入HTML-个人简历
- Mapped Statements collection already contains value for com.xxx.xxx
- ThoughtWorks技术专家详解:企业级区块链原来是这么玩的
- 51nod 1103 N的倍数(抽屉定理)
- (二)暗网信息爬取(python)
- 亲测有效——C#制作图片Button
- 您的table Width出了什么问题?
- servlet过滤器
- Axure设计之-表单标签对齐方式及向导型表单
- Linux_正则表达式(2.通配符,sed)
- maven的历史版本下载
- 字符串逆序
- 什么是面向对象?