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