Scrapy之爬取結果匯出為Excel的快速指南

2021-08-19 18:12:48 字數 2122 閱讀 2185

基於scrapy來爬取資料只是手段,這些爬取的結果需要按照一定的方式匯出或者儲存到資料庫中,excel是在日常工作中使用最為廣泛的工具之一,本文介紹如何來講爬取結果儲存excel檔案。

python 3.6.1 scrapy 1.5.0

定義爬取資料物件的實體類:

import scrapy

class

enrolldataitem

(scrapy.item):

schoolname = scrapy.field

() currentbatch = scrapy.field

() totalnumberinplan = scrapy.field

() majorname = scrapy.field

() categoryname = scrapy.field

() numberinplan = scrapy.field

() note = scrapy.field

()

這裡的field表示其在scrapy爬取的實體字段,無關乎型別。

from scrapy.exporters import csvitemexporter

class

enrolldatapipeline

(object):

defopen_spider

(self, spider):

self.file = open("/home/bladestone/enrolldata.csv", "wb")

self.exporter = csvitemexporter(self.file,

fields_to_export=["schoolname", "currentbatch", "totalnumberinplan"])

self.exporter.start_exporting()

defprocess_item

(self, item, spider):

self.exporter.export_item(item)

return item

defclose_spider

(self, spider):

self.exporter.finish_exporting()

self.file.close()

這裡使用了scrapy自帶的csvitemexporter儲存爬取的結果。

open_spider()和close_spider()兩個方法都來在spider啟動和結束的時候,執行一些初始化和清理工作,對於pipeline操作而言:

process_item()為pipeline中定義的方法,在pipeline在settings.py中註冊之後,將會被呼叫。

在settings.py檔案中註冊pipeline:

item_pipelines =

在spider中一般通過yield的方式實現非同步返回結果,此為spider中定義的響應處理方法。具體的示例如下:

def

parse_data

(): item = enrolldataitem()

item['majorname'] = major_name

item['categoryname'] = major_category

item['numberinplan'] = major_number

item['note'] = major_note

item['schoolname'] = school_name

item['currentbatch'] = current_batch

item['totalnumberinplan'] = total_number

yield item

scrapy crawl enrolldata

enrolldata為專案的名稱。

在scrapy中提供了多種結果輸出方式,目前支援的有: xml, json, csv, pickle等多種方式,對於資料的支援也是非常方便的,這方面的內容將在後續的內容中進行詳細介紹。

Scrapy爬蟲框架 二 匯出爬取結果

功能描述 爬取 豆瓣 電影 top 250,爬取內容 電影標題,評分人數,評分 編輯 items.py 檔案 coding utf 8 import scrapy class doubanmovieitem scrapy.item 排名 ranking scrapy.field 電影名稱 title...

Scrapy爬取彩票開獎結果的實現

需求 爬取體育彩票高頻遊戲 北京11選5的開獎結果 實現計畫 使用scrapy從網頁上爬取 實現步驟 1 準備乙個開發測試環境,筆者使用的是 1 2 3 1 ubuntu16.04 2 python2.7.12 3 scrapy1.2.0 2 建立乙個scrapy工程 scrapy startpro...

python爬蟲之scrapy爬取豆瓣電影(練習)

開發環境 windows pycharm mongodb scrapy 任務目標 任務目標 爬取 豆瓣電影top250 將資料儲存到mongodb中。items.py檔案 coding utf 8 define here the models for your scraped items see d...