此次演示的itcast小爬蟲沒有寫管道檔案,而是將所有的item存到乙個列表中,執行爬蟲時通過-o指定輸出檔案格式來儲存資訊。
原理:通過下面列出的itcast.py 檔案的 return items 可知,爬蟲檔案返回給引擎的資訊並不是欄位item,而是自定義的列表items,此時引擎會判斷出並非item,則會按照我們的命令來儲存資訊。
執行命令:scrapy crawl itcast -o teachers.json
這裡teachers.json 將儲存爬取下來的資訊,也可以輸出成其他格式的檔案。
scrapy儲存資訊最簡單的方法主要有四種,-o指定輸出格式的檔案,命令如下:
#json格式,預設為unicode編碼
scrapy crawl itcast -o teachers.json
#json lines格式,預設為unicode編碼
scrapy crawl itcast -o teachers.json1
#csv逗號表示式,可用excel開啟
scrapy crawl itcast -o teachers.csv
#xml格式
scrapy crawl itcast -o teachers.xml
**:
這裡只列出spiders/itcast.py 檔案和items.py 檔案
items.py檔案:定義需要儲存資訊的字段
spiders/itcast.py 檔案:解析響應檔案並把資訊存到item裡,然後把所有item存到列表items裡,通過-o指定輸出檔案格式將資訊輸出到指定檔案
items.py
# -*- coding: utf-8 -*-
# define here the models for your scraped items
## see documentation in:
# import scrapy
class itcastitem(scrapy.item):
# define the fields for your item here like:
#老師姓名
name = scrapy.field()
#老師職稱
title = scrapy.field()
#老師資訊
info = scrapy.field()
spiders/itcast.py
#rvb nmygfvc 98aq23 -*- coding: utf-8 -*-
import scrapy
from itcast.items import itcastitem #匯入item
class itcastspider(scrapy.spider):
#爬蟲名,啟動爬蟲時需要的引數*必需
name = 'itcast'
#爬取域的範圍,允許爬蟲在這個域下進行爬取(可選)
allowed_domains = ['']
#起始url列表,爬蟲執行後第一批請求將從這個列表獲取
start_urls = ['/channel/teacher.shtml']
def parse(self, response):#解析響應檔案
node_list = response.xpath("//div[@class='li_txt']")
items=#列表儲存所有的item
for node in node_list:
#建立item欄位物件,用來儲存字段資訊
item = itcastitem()
#.extract()提取出xpath物件的內容部分,提取之後是個列表,需要取索引
name = node.xpath("./h3/text()").extract()
title = node.xpath("./h4/text()").extract()
info = node.xpath("./p/text()").extract()
#把資訊儲存到item欄位中
item['name'] = name[0]
item['title'] = title[0]
item['info'] = info[0]
return items #資訊返回給引擎,判斷出並非item會按照我們的命令來儲存資訊
小爬蟲系列
玩玩小爬蟲 抓取時的幾個小細節 摘要 這一篇我們聊聊在頁面抓取時應該注意到的幾個問題。一 網頁更新 我們知道,一般網頁中的資訊是不斷翻新的,這也要求我們定期的去抓這些新資訊,但是這個 定期 該怎麼理解,也就是多長時間需要抓一次該頁面,其實這個定期也就是頁面快取時間,在頁面的快取時間內我們再次抓取該網...
入門小爬蟲
python爬蟲最基本流程是,獲取請求,解析頁面,處理頁面資料 python獲取頁面的的第三方庫很多,像request,urllib,解析方法有最簡單的re正規表示式,也有專門用來解析的庫xmlx,beautifulsoup等。下面以request,正規表示式為例。一 獲取請求,得到網頁文字,先上 ...
爬蟲心得(四)
這次採集正好趕上我的畢業,所以,晚了三天才看到郵箱裡面的任務,這次處理很順利。但是,也是自以為很順利,結果還是經歷了一些困難。現在就列一下所遇到的問題 目錄 1.requestdetail函式和processarticle函式的作用 2.處理文章 現的img和video標籤 3.注意 request...