Python Scrapy爬虫框架安装、配置及实践
近期研究业界安卓APP主要漏洞类型。wooyun算是国内最有名的漏洞报告平台,总结一下这上面的漏洞数据对后面测试与分析漏洞趋势有指导意义,因此写一个爬虫。
不再造轮子了,使用Python的Scrapy框架实现之。
一、安装
64位系统安装时,一定要注意Python的位数与Scrapy及其依赖库位数一致。否则各种坑爹Bug
-
安装32位Python 2.7
-
下载并安装pip(方便自动安装管理依赖库)
https://pypi.python.org/pypi/pip/7.1.2
下载源码,python setup.py install安装之
-
pip install scrapy
遇到问题1:ERROR: 'xslt-config' 不是内部或外部命令,也不是可运行的程序
下载个lxml-3.5.0b1.win32-py2.7.exe安装 ,
https://pypi.python.org/pypi/lxml/3.5.0b1#downloads
-
运行demo代码
遇到问题2:exceptions.ImportError: No module named win32api
从http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/
这里下载一下pywin32程序,安装之。
以上,框架安装完毕。
二、爬虫怎么写
爬wooyun网站漏洞的工程,目录结构如下:
修改items.py(抓取数据的容器):
# -*- coding:gb2312 -*- import scrapy from scrapy.item import Item, Field class Website(scrapy.Item): url = Field() title = Field()
编写spider.py(顾名思义,主要功能这里实现):
# -*- coding:gb2312 -*- from scrapy.spiders import CrawlSpider,Rule from scrapy.linkextractors.sgml import SgmlLinkExtractor from scrapy.selector import Selector from wooyun.items import Website import sys sys.stdout=open('output.txt', 'wb') class WooyunSpider(CrawlSpider): name = "wooyun" allowed_domains = ["wooyun.org"] start_urls = [ "http://wooyun.org/bugs/", ] rules = ( Rule(SgmlLinkExtractor(allow=('bugs/page/([\w]+)', ),)), #http://wooyun.org/bugs/page/3 Rule(SgmlLinkExtractor(allow=('bugs/wooyun-', )), callback='parse_item'), ) def parse_item(self, response): sel = Selector(response) items = [] item = Website() item['title'] = sel.xpath('/html/head/title/text()').extract() item['url'] = response items.append(item) return items
以上爬取所有漏洞名称,及url。功能根据需求扩展即可。
本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!