前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用scrapy爬取sebug漏洞库

使用scrapy爬取sebug漏洞库

作者头像
FB客服
发布2018-02-05 16:21:56
1.2K0
发布2018-02-05 16:21:56
举报
文章被收录于专栏:FreeBufFreeBuf

微信号:freebuf

由于项目需要抓取sebug的漏洞库内容,就利用scrapy框架简单写了个抓取sebug的爬虫,并存入数据库,mysql或mongodb,这里以mysql为例。

关于scrapy

Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。

一图胜千言哈:

操作步骤

1,先建立个scrapy项目,会自动生成一个目录结构

Scrapy startproject sebug

2,分析下sebug的漏洞详情页面内容,在item.py定义要抓取的数据结构

3,sebug的一个URL:http://sebug.net/vuldb/vulnerabilities?start=1 遍历start可以列出所有漏洞的列表。基于CrawkSpider定义一个爬虫类,并添加相应的爬虫规则,然后引入HtmlXPathSelector解析网页,提取所需的页面内容,存入item。

爬虫规则分析

(1)URL以/vuldb/ssvid-xxx 为后缀的网页,调用回调函数处理页面内容,提取数据

Rule(SgmlLinkExtractor(allow=('/vuldb/ssvid-(\d{1,6})$',)),callback='parse_vul')

(2)URL如/vuldb/vulnerabilities?start=xxx 的自动抓取网页链接供爬虫处理

Rule(SgmlLinkExtractor(allow=('/vuldb/vulnerabilities\?start=(\d{1,2})$',)),follow=True)

4,编写pipelines文件,把item存入mysql。

5,在setting.py中添加pipelines:

ITEM_PIPELINES = ['sebug.pipelines.SebugPipeline']

为了防止spider被BAN掉,还可以设置访问延迟和user-agent。

DOWNLOAD_DELAY = 2

RANDOMIZE_DOWNLOAD_DELAY = True

USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5'

6,在mysql中创建对应的表结构。

Create table vulninfo (ssv varchar(10) not null,appdir varchar(20),title varchar(50),content mediumtext,publishdate varchar(50))charset=utf8;

7,运行爬虫

scrapy crawl sebugvul

8,运行截图

代码地址:

https://github.com/Hongxs/scrapy-sebug

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档