Scrapy:
os:win7
python:2.7
首先是安裝easy_install scrapy是的 很容易就安裝好了,難的是那麼多的依賴包 http://doc.scrapy.org/en/0.16/intro/install.html 這裡有win下的安裝指導
如果實在編譯不過,或者是要安裝太多win的東西,就去 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下載一個編譯好的庫安裝吧
第一步:建立一個項目
scrapy startproject tutorial
scrapy.cfg:是設定檔
第二步:建立一個Item
在items.py中建立一個Item
#coding:utf8from scrapy.item import Item, Field#Item是用來儲存抓取的內容的,類似一個字典 class DmozItem(Item): """this is model of Item, likes ORM""" title = Field() link = Field() desc = Field()
第三部:第一個爬蟲
爬蟲類要繼承 scrapy.spider.BaseSpider 並且要有三個屬性:
name start_urls parse
怎麼解析網頁內容呢? Xpath 對這裡要使用Xpath選取器來解析內容
W3cschool 有部分學習內容 W3cschool 有部分學習內容
建立一個dmoz_spider.py檔案 位置是spiders目錄下
#coding=utf8 from scrapy.spider import BaseSpiderfrom scrapy.selector import HtmlXPathSelectorfrom tutorial.items import DmozItemclass DmozSpider(BaseSpider): """spider""" # name must be unique name = "dmoz" allowed_domains = ["dmoz.org"] start_urls = [ "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/", "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/" ] #overwrite parse method def parse(self, response): #filename = response.url.split("/")[-2] #open(filename, "wb").write(response.body) # use hxs = HtmlXPathSelector(response) #extract all ul tag's children tag li sites = hxs.select('//ul/li') items = [] for site in sites: item = DmozItem() item["title"] = site.select('a/text()').extract() item["link"] = site.select('a/@href').extract() item["desc"] = site.select('text()').extract() items.append(item) return items
在 scrapy.cfg所在的目錄下 使用命令
scrapy crawl dmoz -o items.json -t json
此時主目錄下多了一個items.json 就是抓取到的內容
最簡單的抓取網頁-解析網頁-儲存資料的爬蟲就這樣完成了。
引用:官方tutorial