galaxy6 / jspider

Dynamic crawler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#Jspider

##jspider

利用scrapy框架写的动态的爬取url的爬虫。

##Introduce 1.系统环境kail,脚本环境python2.x

2.重写scrapy的下载器,爬取的过程中直接模拟浏览器爬取网站的一般链接,form提交的post数据,js形成的数据,js点击形成的链接,ajax形成的链接。抓取经过本地网卡请求的本域名下的链接。

3.利用scapy抓取经过网卡的请求。

##Installation In Kail, you need to install some libraries.

scrapy

splinter

phantomjs

MySQLdb

multiprocessing

scapy

scapy_http

mysql数据库配置

在./jspider/jspider/mysql.py文件的__init__初始函数中配置相关数据库参数。

self.db_host = "localhost"  #数据库ip
self.db_port = 3306         #数据库端口
self.db_user = "root"       #数据库用户
self.db_password= "xxxxx"   #数据库密码
self.db_name = "xxxxx"      #数据库名字

##Usage #scrapy crawl jspider -a url=[URL]

例子 #scrapy crawl jspider -a url=http://demo.aisec.cn/demo/aisec/

爬虫对demo.aisec.cn爬虫模拟战的链接抓取显示结果。

    [*] Starting at 18:07:09
    [INFO] [URL] http://demo.aisec.cn/robots.txt [GET] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/ [GET] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/ajax_link.php?id=1&t=0.5892525895033032? [DATA] [POST] 
    [INFO] [URL] http://demo.aisec.cn/ [GET] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/cookie_link.php?id=1 [GET] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/other/ [GET] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/login.php [GET] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/login2.php [GET] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/js_link.php?id=2&msg=abc [GET] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/html_link.php?id=2 [GET] 
    [INFO] [URL] http://demo.aisec.cn/files/wvs-testphp.png [GET] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/login.php [DATA]username=&password=123456 [POST] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/index.php [GET] 
    [INFO] [URL] http://demo.aisec.cn [GET] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/post_link.php [DATA]id=1&msg=abc&B1=提交 [POST] 
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/js_link.php?abc= [GET]
    [INFO] [URL] http://demo.aisec.cn/demo/aisec/click_link.php?id=2 [GET] 
    [*] shutting down at 18:07:26

数据库中链接的存储查询结果

    mysql> select id,url,body from demo_aisec_cn;

    +----+--------------------------------------------------------------------------+---------------------------+
    | id | url                                                                      | body                      |
    +----+--------------------------------------------------------------------------+---------------------------+
    |  1 | http://demo.aisec.cn/robots.txt                                          | NULL                      |
    |  2 | http://demo.aisec.cn/demo/aisec/                                         | NULL                      |
    |  3 | http://demo.aisec.cn/demo/aisec/ajax_link.php?id=1&t=0.5892525895033032? |                           |
    |  4 | http://demo.aisec.cn/                                                    | NULL                      |
    |  5 | http://demo.aisec.cn/demo/aisec/cookie_link.php?id=1                     | NULL                      |
    |  6 | http://demo.aisec.cn/demo/aisec/other/                                   | NULL                      |
    |  7 | http://demo.aisec.cn/demo/aisec/login.php                                | NULL                      |
    |  8 | http://demo.aisec.cn/demo/aisec/login2.php                               | NULL                      |
    |  9 | http://demo.aisec.cn/demo/aisec/js_link.php?id=2&msg=abc                 | NULL                      |
    | 10 | http://demo.aisec.cn/demo/aisec/html_link.php?id=2                       | NULL                      |
    | 11 | http://demo.aisec.cn/files/wvs-testphp.png                               | NULL                      |
    | 12 | http://demo.aisec.cn/demo/aisec/login.php                                | username=&password=123456 |
    | 13 | http://demo.aisec.cn/demo/aisec/index.php                                | NULL                      |
    | 14 | http://demo.aisec.cn                                                     | NULL                      |
    | 15 | http://demo.aisec.cn/demo/aisec/post_link.php                            | id=1&msg=abc&B1=提交      |
    | 16 | http://demo.aisec.cn/demo/aisec/js_link.php?abc=                         | NULL                      |
    | 17 | http://demo.aisec.cn/demo/aisec/click_link.php?id=2                      | NULL                      |
    +----+--------------------------------------------------------------------------+---------------------------+

补充: 由于是模拟浏览器的抓取的原因,抓取的过程相对于静态抓取时间会比较长。为了增加爬虫的速度,我在downloadwebkit.py中注释掉了

    #self.click(browser,"a")
    #self.click(browser,"input")

代码即获取点击形成的url链接功能,如果为了抓取的更全面,可以去掉注释,但是耗费的时间较长。

About

Dynamic crawler


Languages

Language:Python 100.0%