亚洲 国产精品 日韩-亚洲 激情-亚洲 欧美 91-亚洲 欧美 成人日韩-青青青草视频在线观看-青青青草影院

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Scrapy框架使用之Spider+Item+Pipline的簡單使用

Scrapy框架使用之Spider+Item+Pipline的簡單使用

來源:千鋒教育
發布人:qyf
時間: 2022-09-19 17:53:35 1663581215

  在 Scrapy 中要抓取和解析一些邏輯內容和提取網站的鏈接,其實都是需要在 Spider 中完成的。在上一篇文章中我們介紹了Scarpy框架的簡單使用,后面一些文章我們要陸續介紹框架里面的Spider、配置、管道、中間件等。scrapy 框架分為spider爬蟲和CrawlSpider(規則爬蟲),本篇文章主要介紹Spider爬蟲的使用。

  spider

  在實現 Scrapy 爬蟲項目時,最核心的類就是 Spider 類了,它定義了如何爬取某個網站的流程和解析方式。簡單來講,Spider 要做的事就是如下兩件。

  • 定義爬取網站的動作

  • 分析爬取下來的網頁

  對于 Spider 類來說,整個爬取循環如下所述。

  • 以初始的 URL 初始化 Request,并設置回調函數。 當該 Request 成功請求并返回時,將生成 Response,并作為參數傳給該回調函數。

  • 在回調函數內分析返回的網頁內容。返回結果可以有兩種形式,一種是解析到的有效結果返回字典或 Item 對象。下一步可經過處理后(或直接)保存,另一種是解析得下一個(如下一頁)鏈接,可以利用此鏈接構造 Request 并設置新的回調函數,返回 Request。

  • 如果返回的是字典或 Item 對象,可通過 Feed Exports 等形式存入到文件,如果設置了 Pipeline 的話,可以經由 Pipeline 處理(如過濾、修正等)并保存。

  • 如果返回的是 Reqeust,那么 Request 執行成功得到 Response 之后會再次傳遞給 Request 中定義的回調函數,可以再次使用選擇器來分析新得到的網頁內容,并根據分析的數據生成 Item。

  通過以上幾步循環往復進行,便完成了站點的爬取。

  我們以星巴克網站為例,為大家介紹Spider類,首先創建項目和創建爬蟲,具體步驟如下:

  scrapy startproject starbuckspro

  進入starbuckspro中,執行scrapy genspider starbucks https://www.starbucks.com.cn

  此時我們就可以看到,有爬蟲文件產生如圖:

Picture

  此時大家看到類:StarbucksSpider繼承自scrapy.Spider,這個類是最簡單最基本的 Spider 類,任何其他的 Spider 必須繼承這個類,包括后文要說明的一些特殊 Spider 類也都是繼承自它。這個類里提供了 startrequests () 方法的默認實現,讀取并請求 starturls 屬性,并根據返回的結果調用 parse () 方法解析結果。另外它還有一些基礎屬性,下面對其進行講解:

  name: 爬蟲名稱,是定義 Spider 名字的字符串。Spider 的名字定義了 Scrapy 如何定位并初始化 Spider,所以其必須是唯一的。如果該 Spider 爬取單個網站,一個常見的做法是以該網站的域名名稱來命名 Spider。

  allowed_domains:允許爬取的域名,是可選配置,不在此范圍的鏈接不會被跟進爬取。

  start_urls:起始 URL 列表,當我們沒有實現 start_requests () 方法時,默認會從這個列表開始抓取。

  當然還有custom_settings和settings,可以進行一些設置或者獲取一些全局的設置。而crawler屬性是由 from_crawler () 方法設置的,代表的是本 Spider 類對應的 Crawler 對象。

  除了一些基礎屬性,Spider 還有一些常用的方法:

  start_requests ():此方法用于生成初始請求,它必須返回一個可迭代對象,此方法會默認使用 start_urls 里面的 URL 來構造 Request,而且 Request 是 GET 請求方式。如果我們想在啟動時以 POST 方式訪問某個站點,可以直接重寫這個方法,發送 POST 請求時我們使用 FormRequest 即可。

  parse ():當 Response 沒有指定回調函數時,該方法會默認被調用,它負責處理 Response,處理返回結果,并從中提取出想要的數據和下一步的請求,然后返回。該方法需要返回一個包含 Request 或 Item 的可迭代對象。

  closed ():當 Spider 關閉時,該方法會被調用,在這里一般會定義釋放資源的一些操作或其他收尾操作。

  當前星巴克的菜單頁面如上圖,我們要爬取里面的所有菜單名稱和圖片。parse()方法在 Response 沒有指定回調函數時,會默認被調用。所以里面的參數response就是我們獲取的頁面結果,我們要從頁面中提取想要的菜單名稱和圖片鏈接地址進行保存。于是我們要重寫parse()方法和定義Item.py文件

  Item

  在抓取數據的過程中,主要要做的事就是從雜亂的數據中提取出結構化的數據。Scrapy的Spider可以把數據提取為一個Python中的字典,雖然字典使用起來非常方便,對我們來說也很熟悉,但是字典有一個缺點:缺少固定結構。在一個擁有許多爬蟲的大項目中,字典非常容易造成字段名稱上的語法錯誤,或者是返回不一致的數據。

  所以Scrapy中,定義了一個專門的通用數據結構:Item。這個Item對象提供了跟字典相似的API,并且有一個非常方便的語法來聲明可用的字段。

  我們的Item的代碼內容如下(因為只需要保存名稱和圖片鏈接即可):

Picture(1)

  構建items.py文件完成后,還需要進一步處理爬取的數據,這就需要修改該項目中的pipelines.py文件。

  Pipeline

  Item Pipeline 是項目管道。也是保存結構數據的地。它的調用發生在 Spider 產生 Item 之后。當 Spider 解析完 Response 之后,Item 就會傳遞到 Item Pipeline,被定義的 Item Pipeline 組件會順次調用,完成一連串的處理過程,比如數據清洗、存儲等。 它的主要功能有:

  • 清洗 HTML 數據

  • 驗證爬取數據,檢查爬取字段

  • 查重并丟棄重復內容

  • 將爬取結果儲存到數據庫

  定義Item非常簡單,只需要繼承scrapy.Item類,并將所有字段都定義為scrapy.Field類型即可。Field對象可用來對每個字段指定元數據。

  其中經常使用的方法就是processitem () ,被定義的 Item Pipeline 會默認調用這個方法對 Item 進行處理。比如,我們可以進行數據處理或者將數據寫入到數據庫等操作。它必須返回 Item 類型的值或者拋出一個 DropItem 異常。 processitem () 方法的參數有如下兩個。

  • item,是 Item 對象,即被處理的 Item

  • spider,是 Spider 對象,即生成該 Item 的 Spider

  所以我們的Pipeline代碼如下(將數據存儲到數據庫中):

Picture(2)

  注意在settings.py中設置當前的Pipeline。

Picture(3)

  為了避免被發現爬蟲我們還可以在settings.py中,如下設置:

Picture(4)

Picture(5)

  準備活動完成后,我們開始編寫我們的爬蟲文件,爬取頁面的分析如下圖

Picture(6)

Picture(7)

  執行爬蟲通過命令:scrapy crawl starbucks,則最后的下載數據結果如下:

Picture(8)

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
夫妇交换性三中文字幕| 第一次爱的人视频播放完整版| MAC小辣椒877正品| 国产成人AV无码精品| 含羞草四叶草三叶草| 邻居少妇张开腿让我爽了在线观看| 欧美成人一区二区三区| 色欲av伊人久久大香线蕉影院| 亚洲AV无码男人的天堂| 中文字幕视频在线观看| 丁香花在线观看视频在线| 黑人巨大精品欧美久久| 男女后进式猛烈XX00动态图片| 少妇无码AV无码专区线Y| 亚洲精品乱码久久久久久按摩| 2021国产精品国产精华| 丰满乳乱亲伦小说| 久久99精品国产自在现线小黄鸭| 欧亚精品卡一卡二卡三7174| 小蜜桃HD中字高清在线| 综合在线视频精品专区| 国产精华液和欧美的精华液的区别| 精品人人妻人人澡人人爽牛牛| 欧美性大片XXXXX久久久| 午夜国产精品一二三区无码小说| 真实的国产乱ⅩXXX66小说| 国产99久久亚洲综合精品| 久久精品人人做人人综合试看| 日本熟妇人妻XXXXX野外呻| 亚洲第一无码精品一区| ぱらだいす天堂中文WWW最新版 | 欧美性XXXXX极品少妇| 亚洲 欧洲 日韩 综合二区| AV无码久久久久久不卡网站| 国产又爽又黄的激情精品视频| 欧美老妇BBBWWBBBWW| 亚洲AV无码一区东京热| А√中文在线天堂| 久久99国产精品久久99小说| 色噜噜天堂AV崩坏星穹铁道| 一二三四在线观看免费中文吗 | BGMBGMBGM老妇60岁| 国精产品W灬源码1688伊| 强壮公的侵犯让我高潮不断 | 精品乱子伦一区二区三区| 人人妻人人澡人人爽欧美一区九九 | 我和岳交换夫妇爽| CAOPORN国产精品免费| 护士爽到疯狂潮喷好爽| 日韩一区二区三区精品| 在线天堂网WWW天堂在线| 国产日产欧产美韩系列麻豆| 欧美一区二区三区激情| 亚洲欧美V国产蜜芽TV| 国产成人精品综合久久久久| 妺妺窝人体色www聚色窝图| 亚州AV自慰白浆喷出少妇网站 | 中国西西大胆女人裸体艺术| 国产午夜精品无码| 日韩乱码人妻无码超清蜜桃| 一二三四视频中文字幕在线看| 国产日韩未满十八禁止观看| 日本COSME大赏美白| 征服丰满人妻老师| 加勒比一本HEYZO高清视频 | 国产成人免费A在线视频 | 顶级欧美熟妇高清XXXXX| 蜜芽国产尤物AV尤物在线看| 亚洲国产成人久久综合碰| 国产成人无码AV| 日本XXXX裸体XXXX自慰| 18禁无遮挡啪啪摇乳动态图| 精品无码国产自产拍在线观看蜜桃| 调教小奴高潮惩罚PLAY道具 | 在出租屋里被强高H| 黑人又大又粗又长欧美网站| 熟妇人交VIDEOS复古| 啊灬啊灬别停啊灬用力啊免费| 蜜桃AV麻豆AV天美AV| 亚洲人成亚洲精品| 黑人大性殖器大战欧美白妇| 无码欧亚熟妇人妻AV在线| 大陆少妇XXXX做受| 人妻大战黑人白浆狂泄| 51国产偷自视频区视频| 里面也请好好疼爱第5话在哪| 亚洲精品久久久久无码AV片软件| 国产精品一线二线三线有什么区别| 日韩精品无码免费一区二区三区| 99久久国产综合精麻豆| 绿帽娇妻在卧室疯狂的呻吟| 亚洲色丰满少妇高潮| 皇上御花园HLH| 亚洲AV极品无码专区在线观看| 国产精品久久久久久影视| 爽爽AV浪潮AV一区二区| 成人艳情一二三区| 日本适合十八岁以下的护肤| А√天堂8资源官网在线BT种子| 男人女人做爽爽18禁网站| 中国熟妇色XXXXX中国老妇| 老狼老狼芦苇芭蕉| 一区二区三区人妻无码| 久久久久免费精品国产| 亚洲一区在线曰日韩在线| 久久精品国产99久久丝袜蜜桃| 亚洲乱色熟女一区二区三区麻豆| 黑色丝袜老师自慰喷水浪潮免费| 亚洲AV永久无码精品| 好大好深好猛好爽视频| 亚洲成a人片在线观看无码关注| 哈昂~哈昂够了太多太深| 亚洲AV无码国产一区二区三区不 | 精品韩国AV无码一区二区三区| 亚洲AV午夜成人片精品电影| 狠狠色丁香婷婷综合久久图片| 亚洲va熟妇自拍无码区| 精品久久国产综合婷婷五月| 亚洲人成色7777在线观看| 久久精品国产成人| 伊人精品无码一区二区三区电影 | 亚洲欧美成人在线观看| 精品久久久久久中文字幕人妻最新 | 野花高清中文免费观看视频 | 色欲久久久天天天综合网精品| 超高清欧美VIDEOSSEXO| 日韩一区二区三区av| 国产粗话肉麻对白在线播放| 午夜精品一区二区三区免费视频| 国产午夜不卡AV免费| 亚洲国产AV无码男人的天堂| 久久久久精品一区中文字幕| 中国人も日本人も汉字を| 男妓用舌头舔我高潮不退小说| B里可以放多少个鸡蛋| 人妻少妇精品无码专区动漫| 粉嫩AV一二三区免费| 无码热综合无码色综合| 国产一区内射最近更新| 亚洲色偷偷综合亚洲av伊人| 蜜桃视频一区二区三区在线观看| FREE MOVIES 日本护| 日韩精品一区二区三区乱码79| 国产浮力第一页草草影院| 亚洲AV美女一区二区三区| 久久久久久人妻精品一区| 99国产欧美精品久久久蜜芽| 日韩欧美精品有码在线| 国产乱子伦在线观看| 亚洲色欲色欲综合网站色偷偷| 妺妺窝人体色WWW精品777| 成人A毛片免费播放| 午夜.DJ高清在线观看免费8| 久久99精品久久久久久动态图 | 人妻无码AⅤ中文字幕视频| 国产98在线 | 传媒麻豆| 亚洲VA国产VA天堂VA久久| 老太太BGMBGMBGM11| 被三个男人躁一夜好爽小说| 无人区乱码一线忘忧草| 久久精品国产69国产精品亚洲| AV无码国产在线看免费网站| 私人影院播放器大全| 精品久久久久久中文字幕无码软件| 中文字幕人妻互换激情| 日韩人妻无码精品二专区| 国产亚洲日韩在线三区| 在公车被灌满JING液| 日韩中文无码有码免费视频| 国外精产品W灬源码16| 自拍亚洲综合在线精品| 上面一个奶下面一个顶是什么字| 狠狠色噜噜狠狠狠7777奇米| √新版天堂资源在线资源| 熟妇高潮一区二区精品| 久久精品国产网红主播| 暗交小拗女一区二区三区| 亚洲AV韩Av无码色老头| 男人又粗又黑又硬的东西| 国产精品VIDEOS麻豆| 岳妇伦丰满69ⅩⅩ| 十八禁啪啪污污网站免费下载| 久久国产精品99精品国产987| 拔萝卜电视剧高清免费| 亚洲AV永久无码3D动漫在线观| 欧美VIDEOS另类色HDFR| 国产乱妇乱子在线播视频播放网站| 一区二区精品视频| 熟女乱色一区二区三区| 久久久亚洲熟妇熟女ⅩXXXH| 绯色av蜜臀av少妇无码| 亚洲中文字幕乱码AV波多JI| 色欲AⅤ蜜臀AV在线播放| 久久精品久久精品久久39| 成人免费无码大片A毛片18| 亚洲色AV天天天天天天| 色综合色天天久久婷婷基地| 久久久久亚洲AV无码专区喷水| 国产69精品久久久久久人妻精品| 艳妇乳肉豪妇荡乳AV|