本地化乌云网操作记录

基于第三方项目:https://github.com/hanc00l/wooyun_public

一、 准备工作

1、 python环境:

  • 多版本共存pyenv
  • 虚拟环境virtualenv

2、 安装命令:

1
2
3
pyenv install 2.7.10
pyenv global 2.7.10
pyenv virtualenv 2.7.10 venv2710

二、 具体操作步骤

1、 进入虚拟环境

1
pyenv activate venv2710

2、 安装Flask

注:(一个基于python的web开发微框架)

1
2
3
4
#文档地址
http://docs.jinkan.org/docs/flask/
pip install Flask

3、 安装 Scrapy

注:(一个基于python的爬虫框架)

1
2
3
4
#文档地址
http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html
pip install Scrapy

备注:需要Twisted>=10.0.0

1
2
3
4
5
#下载
wget https://pypi.python.org/packages/source/T/Twisted/Twisted-15.2.1.tar.bz2
#解压安装:
python setup.py install

4、 安装pymongo

1
pip install pymongo

5、 启动web

进入项目的flask目录下:python app.py

6、 开始爬虫

1
2
3
4
5
#进入项目下的wooyun目录:
scrapy crawl wooyun -a page_max=0 -a update=true
#进入项目下的wooyun_drops目录:
scrapy crawl wooyun -a page_max=0 -a update=true

备注:提示缺少PIL—http://www.pythonware.com/products/pil/
解决:

1
2
3
4
5
#下载
wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
#解压安装:
python setup.py install

7、 mongodb+elasticsearch

PS: mongodb使用elasticsearch必须要是集群下

  • 编辑/home/ts/db/mongodb/mongodb.conf ,增加:

    1
    2
    replSet=rs0 #这里是指定replSet的名字
    oplogSize=100 #这里是指定oplog表数据大小(太大了不支持)
  • 重启动mongodb

    1
    service mongodb restart
  • 进入mongodb shell,初始化replicSet

    1
    rs.initiate( {"_id" : "rs0", "version" : 1, "members" : [ { "_id" : 0, "host" : "127.0.0.1:27017" } ]})

备注:rs.initiate初始化字段详情见:
https://docs.mongodb.com/manual/reference/replica-configuration/#replsetgetconfig-output

三、 还可能遇到的问题

1、 virtualenv的环境无法import sqlite3

报错信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
#python
Python 2.7.9 (default, Feb 10 2015, 01:40:34)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/root/.pyenv/versions/2.7.9/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/root/.pyenv/versions/2.7.9/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3

谷歌了一下,原因是安装了多套python环境,virtualenv使用的那套python没有_sqlite3.so这个文件。
没用virtualenv的时候,使用的是另外一套python的_sqlite3.so,
所以解决方法是先安装sqlite-devel,
然后重新编译virtualenv使用的那套python,
操作步骤如下,因为我使用的pyenv,所以是连带virtualenv一起安装的。

1
2
3
4
5
#先退出virtualenv的python环境,安装sqlite-devel
yum -y install sqlite-devel
#重新安装pyenv
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

删掉原有的python环境、重新安装python环境

坚持原创技术分享,您的支持将鼓励我继续创作!
------ 本文结束 ------