Python Scrapy爬虫框架安装配置及实践

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Scrapy爬虫框架安装配置及实践相关的知识,希望对你有一定的参考价值。

近期研究业界安卓APP主要漏洞类型。wooyun算是国内最有名的漏洞报告平台,总结一下这上面的漏洞数据对后面测试与分析漏洞趋势有指导意义,因此写一个爬虫。

不再造轮子了,使用Python的Scrapy框架实现之。

一、安装

64位系统安装时,一定要注意Python的位数与Scrapy及其依赖库位数一致。否则各种坑爹Bug

  1. 安装32位Python 2.7

  2. 下载并安装pip(方便自动安装管理依赖库)

    https://pypi.python.org/pypi/pip/7.1.2

    下载源码,python setup.py install安装之

  3. 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

  4. 运行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。功能根据需求扩展即可。

str1 = sel.xpath(//h3[@class="wybug_type"]/text()).extract()
    ‘‘‘
    str1 = "漏洞类型:    设计缺陷/逻辑错误"
    ‘‘‘

 

以上是关于Python Scrapy爬虫框架安装配置及实践的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫 ---scrapy框架初探及实战

Python之Scrapy爬虫框架安装及简单使用

Python之Scrapy爬虫框架安装及简单使用

Python爬虫进阶之Scrapy框架安装配置

Python爬虫进阶三之Scrapy框架安装配置

芝麻HTTP:Python爬虫进阶之Scrapy框架安装配置