Python Scrapy爬蟲框架安裝、配置及實踐

jopen 8年前發布 | 16K 次閱讀 網絡爬蟲

近期研究業界安卓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。功能根據需求擴展即可。

來自: http://my.oschina.net/cve2015/blog/547070

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!