Ubuntu 14.04 64bit上磁力链爬虫dht部署指南
2014-07-26 22:36
134 查看
首先声明:
下面的源码包改编来自github上老太太写的一个"史上最简单的DHT爬虫“项目:
https://github.com/laomayi/simDHT
相关源码在附件源码包dht这个文件夹中,这个源码使用python实现,需要使用到mysql数据库.
下面是源码目录下的文件,比较简洁,log文件是刚才运行时创建的.
源码包位于http://download.csdn.net/detail/tao_627/7682169
![](http://img.blog.csdn.net/20140726223541322?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFvXzYyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
为此我们需要先搭建一个LNMP环境, 或者更简单点,只安装一个MySQL数据库.
从dht.py源码我们得知爬虫会将爬取结构输入到mysql中,为此我们先要在mysql中
创建一个bt数据库,在其中创建两个InnoDB数据表bt_main_new,torrentdetail,
数据库的用户名是bt_user,密码是5MKDfxmhmQDbSf,我们可以根据自己的需要在dht.py中的Master类中修改为我们的用户名和密码,为了简单,我这里都改为root好了,
因为搭建LNMP时,我的MySQL用户名和密码就都设为root了.同时将数据库名由bt改为dht.
vim dht.py
修改上述3处地方,改数据库为dht, 用户名和密码为root.
为了后续管理数据库方便,我们可以是Navicat for MySQL linux版本来访问数据库.
![](http://img.blog.csdn.net/20140726232737443?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFvXzYyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
下面开始创建相关表格
create database dht;
use bt;
show tables;
使用dht目录下面的sql脚本来分别创建这两个数据表
source /home/taoyx/program_develop/dht/bt_main_new.sql;
source /home/taoyx/program_develop/dht/TorrentDetail.sql;
exit;
![](http://img.blog.csdn.net/20140726222859125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFvXzYyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
接着安装python下面的MySQL模块
在python环境下面,默认没有安装MySQLdb包,为此下面开始安装.
从官网下面MySQL for Python源码包
wget http://sourceforge.net/projects/mysql-python/files/latest/
或者
git clone https://github.com/farcepest/MySQLdb1.git
从源码编译,详见下面的参考文献.这里不详述了.
或者为了快速方便直接在Ubuntu下面使用
sudo apt-get install python-mysqldb
![](http://img.blog.csdn.net/20140726223059352?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFvXzYyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
在CentOS上使用
sudo yum install MySQL-python
然后,在命令行终端开启脚本开始在dht网络中搜集磁力链
python dht.py
下面是软件截图:
![](http://img.blog.csdn.net/20140726223011538?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFvXzYyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
当然,这里有些小warning或是error之类的,考虑是demo,可以忽略,因为原理是通的,我们也可以在开源的基础上继续修改完善.
下面是爬取日志记录的infohash值
![](http://img.blog.csdn.net/20140726225431076?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFvXzYyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
为了理解dht爬虫原理,下面附了几篇不错的文章,可以结合python代码和dht协议进行理解.
参考文献
[1].http://www.cnblogs.com/rollenholt/archive/2012/05/07/2487137.html
[2].http://blog.csdn.net/samxx8/article/details/6285013
[3].http://blog.csdn.net/wklken/article/details/7271019
[4].http://www.cppblog.com/kevinlynx/archive/2013/05/19/200410.html
[5].http://blog.csdn.net/mergerly/article/details/7989281
下面的源码包改编来自github上老太太写的一个"史上最简单的DHT爬虫“项目:
https://github.com/laomayi/simDHT
相关源码在附件源码包dht这个文件夹中,这个源码使用python实现,需要使用到mysql数据库.
下面是源码目录下的文件,比较简洁,log文件是刚才运行时创建的.
源码包位于http://download.csdn.net/detail/tao_627/7682169
为此我们需要先搭建一个LNMP环境, 或者更简单点,只安装一个MySQL数据库.
从dht.py源码我们得知爬虫会将爬取结构输入到mysql中,为此我们先要在mysql中
创建一个bt数据库,在其中创建两个InnoDB数据表bt_main_new,torrentdetail,
数据库的用户名是bt_user,密码是5MKDfxmhmQDbSf,我们可以根据自己的需要在dht.py中的Master类中修改为我们的用户名和密码,为了简单,我这里都改为root好了,
因为搭建LNMP时,我的MySQL用户名和密码就都设为root了.同时将数据库名由bt改为dht.
vim dht.py
修改上述3处地方,改数据库为dht, 用户名和密码为root.
为了后续管理数据库方便,我们可以是Navicat for MySQL linux版本来访问数据库.
下面开始创建相关表格
create database dht;
use bt;
show tables;
使用dht目录下面的sql脚本来分别创建这两个数据表
source /home/taoyx/program_develop/dht/bt_main_new.sql;
source /home/taoyx/program_develop/dht/TorrentDetail.sql;
exit;
接着安装python下面的MySQL模块
在python环境下面,默认没有安装MySQLdb包,为此下面开始安装.
从官网下面MySQL for Python源码包
wget http://sourceforge.net/projects/mysql-python/files/latest/
或者
git clone https://github.com/farcepest/MySQLdb1.git
从源码编译,详见下面的参考文献.这里不详述了.
或者为了快速方便直接在Ubuntu下面使用
sudo apt-get install python-mysqldb
在CentOS上使用
sudo yum install MySQL-python
然后,在命令行终端开启脚本开始在dht网络中搜集磁力链
python dht.py
下面是软件截图:
当然,这里有些小warning或是error之类的,考虑是demo,可以忽略,因为原理是通的,我们也可以在开源的基础上继续修改完善.
下面是爬取日志记录的infohash值
为了理解dht爬虫原理,下面附了几篇不错的文章,可以结合python代码和dht协议进行理解.
参考文献
[1].http://www.cnblogs.com/rollenholt/archive/2012/05/07/2487137.html
[2].http://blog.csdn.net/samxx8/article/details/6285013
[3].http://blog.csdn.net/wklken/article/details/7271019
[4].http://www.cppblog.com/kevinlynx/archive/2013/05/19/200410.html
[5].http://blog.csdn.net/mergerly/article/details/7989281
相关文章推荐
- 在Ubuntu 14.04 64bit上使用JBL Charge2+无线蓝牙音箱听歌指南
- Ubuntu14.04 安装 MonoDevelop 指南
- ubuntu14.04 eclipse+tomcat部署web项目到任意目录
- Caffe + Ubuntu 14.04 + CUDA 6.5 新手安装配置指南
- Ubuntu 14.04 LTS 64bit 编译SDL的问题
- Ubuntu 14.04 64bit上升级Intel官方集显更新驱动程序
- Oracle11gR2 On Asianux3集群部署指南(64bit)
- Ubuntu14.04系统使用全指南
- Ubuntu 14.04 上使用 Nginx Passenger 部署 Ruby on Rails
- ubuntu14.04 64bit 安装 && 破解quartus13.0 记录
- 在Ubuntu 14.04上部署 PHP 环境及 WordPress
- Ubuntu 14.04 64bit上玩转graphviz绘图工具
- 在Ubuntu 14.04 64bit上编译安装xbt tracker
- Ubuntu 14.04 64bit上安装LNMP环境
- Ruby On Rails(Ubuntu64位14.04) 服务器部署
- ubuntu14.04 64bit 安装 && 破解quartus13.0 记录
- Ubuntu 14.04 64bit上解析wireshark抓包pcap文件格式和源码实现
- [Ubuntu] Ubuntu14.04 64bit 编译安装nginx1.7+php5.4+mysql5.6
- 在Ubuntu 14.04 64bit上安装Valgrind并检查内存泄露
- 在Ubuntu 14.04上部署 PHP 环境及 WordPress