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

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 20天學(xué)會(huì)爬蟲之Scrapy框架介紹

20天學(xué)會(huì)爬蟲之Scrapy框架介紹

來源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2022-09-19 17:49:00 1663580940

  什么是Scrapy

  Scrapy是一個(gè)為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架。

  框架就是將平常寫爬蟲的request (異步調(diào)度和處理)、下載器(多線程的 Downloader)、解析器(selector)和 twisted(異步處理)封裝到了一起,夠成了框架。而且使用起來更加方便,爬取速度更快。

  Scrapy框架的應(yīng)用領(lǐng)域有很多,例如網(wǎng)絡(luò)爬蟲開發(fā)、數(shù)據(jù)挖掘、自動(dòng)化測(cè)試等,其最初是為了頁面抓取(網(wǎng)絡(luò)抓取)所設(shè)計(jì)的,也可以應(yīng)用在獲取API所返回的數(shù)據(jù)或者通用的網(wǎng)絡(luò)爬蟲。官方網(wǎng)址是https://scrapy.org/

Picture

  Scrapy的安裝

  Windows系統(tǒng):

  pip install scrapy

  如果安裝過程中出錯(cuò)

  錯(cuò)誤信息如下:

Picture(1)

  則需要安裝Microsoft Visual C++14,如果報(bào)錯(cuò)不是Microsoft Visual C++14比如Microsoft Visual C++15則對(duì)應(yīng)安裝即可。

  如果安裝過程中過提示安裝Twisted安裝失敗,則需要來到這個(gè)網(wǎng)址:https://www.lfd.uci.edu/~gohlke/pythonlibs/自行下載wheel文件,

Picture(2)

  可能需要下載的是:pyOpenSSL、Twisted、PyWin32,可以根據(jù)安裝時(shí),報(bào)錯(cuò)的提示信息有針對(duì)性的下載。

  下載之后放到一個(gè)固定的目錄中,進(jìn)入下載的目錄。執(zhí)行 pip3 install xxxxxx.whl (注意xxxxxx代表的是你下載的wheel的名字)

  然后再次執(zhí)行:pip install scrapy

  Linux和mac系統(tǒng)直接:pip3 install scrapy

  scrapy工作流程

Picture(3)

  Scrapy工作流程的圖:

Picture(4)

  在圖中,Scrapy引擎是架構(gòu)的核心部分,調(diào)度器、管道、下載器和Spiders等組件都通過引擎來調(diào)控。在Scrapy引擎和下載器中間通過中間件傳遞信息,在下載中間件中,可以插入自定義代碼擴(kuò)展Scrapy的功能,例如實(shí)現(xiàn)IP池的應(yīng)用。引擎和Spiders之間也是通過爬蟲中間件來傳遞信息,同樣可以自定義擴(kuò)展功能。

  其中:

  Scrapy引擎負(fù)責(zé)控制整個(gè)數(shù)據(jù)處理流程,處于整個(gè)Scrapy框架中心位置,協(xié)調(diào)調(diào)度器、管道、中間件、下載器、爬蟲。

  調(diào)度器負(fù)責(zé)存儲(chǔ)等待爬取的網(wǎng)址,確定網(wǎng)址優(yōu)先級(jí),相當(dāng)于一個(gè)隊(duì)列存儲(chǔ),同時(shí)也會(huì)過濾一些重復(fù)的網(wǎng)址。

  下載器實(shí)現(xiàn)對(duì)等待爬取的網(wǎng)頁資源進(jìn)行高速下載,該組件通過網(wǎng)絡(luò)進(jìn)行大量數(shù)據(jù)傳輸,下載對(duì)應(yīng)的網(wǎng)頁資源后將數(shù)據(jù)傳遞給Scrapy引擎,再由引擎?zhèn)鬟f給爬蟲處理。

  下載中間件用于處理下載器與Scrapy引擎之間的通信,自定義代碼可以輕松擴(kuò)展Scrapy框架的功能

  Spiders是實(shí)現(xiàn)Scrapy框架爬蟲的核心部分。每個(gè)爬蟲負(fù)責(zé)一個(gè)或多個(gè)指定的網(wǎng)站。爬蟲組件負(fù)責(zé)接收Scrapy引擎中的Response響應(yīng),接收到響應(yīng)后分析處理,提取對(duì)應(yīng)重要信息

  爬蟲中間件是處理爬蟲組件和Scrapy引擎之間通信的組件,可以自定義代碼擴(kuò)展Scrapy功能

  管道用于接收從爬蟲組件中提取的管道,接收到后進(jìn)行清洗、驗(yàn)證、存儲(chǔ)等系列操作

  因此其流程可以描述如下:

  爬蟲中起始的url構(gòu)造成request對(duì)象-->爬蟲中間件-->引擎-->調(diào)度器

  調(diào)度器把request-->引擎-->下載中間件--->下載器

  下載器發(fā)送請(qǐng)求,獲取response響應(yīng)---->下載中間件---->引擎--->爬蟲中間件--->爬蟲

  爬蟲提取url地址,組裝成request對(duì)象---->爬蟲中間件--->引擎--->調(diào)度器,重復(fù)步驟2

  爬蟲提取數(shù)據(jù)--->引擎--->管道處理和保存數(shù)據(jù)

  每部分的具體作用

Picture(5)

  scrapy常用命令

  scrapy后面可以跟不同的命令,可以使用scrapy --help進(jìn)行查看,Scrapy框架中命令分為全局命令和項(xiàng)目命令,全局命令不需要進(jìn)入Scrapy項(xiàng)目即可在全局中直接運(yùn)行,項(xiàng)目命令必須在Scrapy項(xiàng)目中才可以運(yùn)行。

Picture(6)

  其中:

  全局命令:

  fetch命令是用來檢查spider下載頁面的方式

  runspider命令通過Scrapy中的runspider命令可以直接運(yùn)行一個(gè)爬蟲文件

  settings命令是用來獲取Scrapy的配置信息。

  shell命令可以啟動(dòng)Scrapy的交互終端

  version命令用于查看Scrapy的版本信息

  項(xiàng)目命令:

  Scarpy的項(xiàng)目命令主要有bench、check、crawl、edit、genspider、list、parse。Scrapy全局命令可以在項(xiàng)目?jī)?nèi)外使用,而項(xiàng)目命令只能在Scrapy爬蟲項(xiàng)目中使用。

  bench命令可以測(cè)試本地硬件的性能。

  genspider命令可以創(chuàng)建Scrapy爬蟲文件,這是一種快速創(chuàng)建爬蟲文件的方法

  check命令可以實(shí)現(xiàn)對(duì)爬蟲文件的測(cè)試

  crawl命令可以啟動(dòng)某個(gè)爬蟲

  list命令可以列出當(dāng)前可使用的爬蟲文件

  parse命令可以獲取指定的URL網(wǎng)址,并使用對(duì)應(yīng)的爬蟲文件分析處理

  scrapy開發(fā)步驟

  創(chuàng)建項(xiàng)目:

  scrapy startproject 爬蟲項(xiàng)目名字

  生成一個(gè)爬蟲:

  scrapy genspider <爬蟲名字> <允許爬取的域名>

  提取數(shù)據(jù):

  根據(jù)網(wǎng)站結(jié)構(gòu)在spider中實(shí)現(xiàn)數(shù)據(jù)采集相關(guān)內(nèi)容

  保存數(shù)據(jù):

  使用pipeline進(jìn)行數(shù)據(jù)后續(xù)處理和保存

  創(chuàng)建項(xiàng)目

  使用Scrapy創(chuàng)建一個(gè)爬蟲項(xiàng)目,首先需要進(jìn)入存儲(chǔ)爬蟲項(xiàng)目的文件夾,例如在“D:\python_spider”目錄中創(chuàng)建爬蟲項(xiàng)目,如圖所示。

Picture(7)

  當(dāng)然如果你是Linux或者mac系統(tǒng)也需要進(jìn)入存儲(chǔ)爬蟲項(xiàng)目的文件夾,然后新建項(xiàng)目

Picture(8)

  創(chuàng)建之后的爬蟲項(xiàng)目myproject目錄結(jié)構(gòu)如下:

  項(xiàng)目名字/

  scrapy.cfg:

  項(xiàng)目名字/

  __init__.py

  items.py

  pipelines.py

  settings.py

  spiders/

  __init__.py

  scrapy.cfg 項(xiàng)目的主配置信息。(真正爬蟲相關(guān)的配置信息在settings.py文件中)

  items.py 設(shè)置數(shù)據(jù)存儲(chǔ)模板,用于結(jié)構(gòu)化數(shù)據(jù),如:Django的Model

  pipelines 數(shù)據(jù)持久化處理

  settings.py 配置文件,如:遞歸的層數(shù)、并發(fā)數(shù),延遲下載等

  spiders 爬蟲目錄,如:創(chuàng)建文件,編寫爬蟲解析規(guī)則

  生成一個(gè)爬蟲spider

  進(jìn)入剛才創(chuàng)建的爬蟲項(xiàng)目myproject目錄

Picture(9)

  然后執(zhí)行: scrapy genspider 應(yīng)用名稱 爬取網(wǎng)頁的起始url (見下圖的3部分)

Picture(10)

  編寫爬蟲

  在生成一個(gè)爬蟲執(zhí)行完畢后,會(huì)在項(xiàng)目的spiders中生成一個(gè)應(yīng)用名的py爬蟲文件

Picture(11)

  打開文件進(jìn)行代碼編寫,大家看到的是默認(rèn)的格式,可以在parse方法中完善爬蟲代碼

Picture(12)

  保存數(shù)據(jù)

  數(shù)據(jù)的保存需要使用管道pipline,在pipelines.py文件中定義對(duì)數(shù)據(jù)的操作

  定義一個(gè)管道類

  重寫管道類的process_item方法

  process_item方法處理完item之后必須返回給引擎

Picture(13)

  然后在settings.py配置啟用管道

  ITEM_PIPELINES = {

  'myproject.pipelines.MyprojectPipeline': 400,

  }

  配置項(xiàng)中鍵為使用的管道類,管道類使用.進(jìn)行分割,第一個(gè)為項(xiàng)目目錄,第二個(gè)為文件,第三個(gè)為定義的管道類。

  配置項(xiàng)中值為管道的使用順序,設(shè)置的數(shù)值約小越優(yōu)先執(zhí)行,該值一般設(shè)置為1000以內(nèi)。

  運(yùn)行scrapy

  命令:在項(xiàng)目目錄下執(zhí)行scrapy crawl <爬蟲名字>

  示例:scrapy crawl qiubai

Picture(14)

  當(dāng)然本次只是給大家描述了一下爬蟲中使用scrapy的基本步驟,20天學(xué)會(huì)爬蟲后面會(huì)接連介紹scrapy的使用,敬請(qǐng)期待哦!

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Visual Studio Online和GitHub有什么區(qū)別?

1.定位不同Visual Studio Online,現(xiàn)更名為Visual Studio Codespaces,是微軟提供的一款在線開發(fā)環(huán)境,允許開發(fā)者在云端進(jìn)行編程和調(diào)試工作。而...詳情>>

2023-10-15 00:21:42
什么是域控制器?

一、域控制器的定義域控制器是指在Windows Server操作系統(tǒng)中部署Active Directory服務(wù)的服務(wù)器。Active Directory是微軟公司開發(fā)的目錄服務(wù),用...詳情>>

2023-10-15 00:10:28
深度學(xué)習(xí)模型權(quán)重h5、weights、ckpt、pth有什么區(qū)別?

1.來源框架不同h5格式通常用于Keras和TensorFlow框架,weights用于Darknet框架,ckpt是TensorFlow框架的一種格式,而pth則主要用于PyTorch框架...詳情>>

2023-10-15 00:05:17
大數(shù)據(jù)測(cè)試工程師需要具備哪些技能?

一、理解大數(shù)據(jù)概念大數(shù)據(jù)測(cè)試工程師需要理解大數(shù)據(jù)的基本概念和原理,如分布式存儲(chǔ)、MapReduce、實(shí)時(shí)計(jì)算等。他們還需要了解如何處理大規(guī)模的...詳情>>

2023-10-14 23:43:03
為什么SpringBoot的 jar 可以直接運(yùn)行?

一、JAR文件的結(jié)構(gòu)與執(zhí)行方式Spring Boot的JAR包是Java Archive的縮寫,它是一種壓縮文件格式,可以將Java項(xiàng)目的類文件、資源文件以及依賴庫等...詳情>>

2023-10-14 23:01:49
快速通道
投诉12345最狠的办法| 日韩Av无码一区二区| 青草青草视频2免费观看| 色惰日本视频网站WWW| 五月丁香六月缴情基地| 亚洲精品无码激情AV| 坐公交忘穿内裤被挺进老| 成人AV片在线观看免费| 国产精品无码一区二区三区| 九热爱视频精品视频| 欧美富婆性猛交XXXX| 沈陽43歲熟女高潮視頻| 亚洲成AV人片一区二区密柚| 重生后我抛弃了负心公主| 成人A级毛片免费观看AV网站| 国产乱子伦一区二区三区| 久久久久无码精品亚洲日韩| 人人妻人人澡人人爽精品欧美| 先の欲求不満な人妻无码| 伊人久久五月丁香综合中文亚洲| 边喂奶边中出的人妻| 国内精品久久人妻无码| 女性高爱潮免费有声视频网站| 手机在线看永久AV片免费高潮| 亚洲欧洲AV综合色无码| 爆乳护士HD完整版在线播放| 韩国av一区二区三区| 欧美成人免费一区| 亚洲AV福利天堂一区二区三| 91老熟女老女人国产老太毛多| 国产后入清纯学生妹| 旅人蕉天堂鸟的区别视频| 天空影院手机免费观看在线 | 被黑人的大JJ干得很舒服吗| 国产精品天干天干有线观看| 免费高清A级毛片在线播放| 玩弄肥美高大的熟妇| 综合无码成人AⅤ视频在线观看| 国产Gay男同gv网站播放免费| 久久久久久久人妻无码中文字幕爆| 日韩激情无码不卡码| 亚洲综合色区在线观看| 儿子第一次送妈妈母亲节礼物| 久久精品久久久久久久精品| 色惰日本视频网站WWW| 喑交小拗女一区二区三区| 国产成人精品一区二区秒拍| 妹妹中考前让我C了1次| 无码天堂亚洲国产AV久久| ◇一本大道香蕉中文在线| 国产亚AV手机在线观看| 欧洲精品码一区二区三区| 亚洲国产区男人本色| 吃了继兄开的药我做的梦更| 久久婷婷五月国产色综合| 无码成A毛片免费| JAPANESE军人强迫| 久久精品国产99久久丝袜蜜桃| 少妇高潮潮喷到猛进猛出小说| 中日AV乱码一区二区三区乱码| 国产男男猛烈无遮挡A片小说| 漂亮人妻被强中文字幕| 野草高清视频免费| 国产狂喷水潮免费网站WWW| 欧洲熟妇色XXXXⅩ| 艳妇乳肉豪妇荡乳XXX| 国产精品拍天天在线| 人人澡人人人妻人人人少妇| 伊人久久精品AV无码一区| 国产影片AV级毛片特别刺激| 日韩免费无码专区精品观看| 中文字幕理伦午夜福利片| 娇妻被黑人杂交呻吟| 少妇高潮喷水久久久久久久久久 | 男人边吃奶边做好爽免费视频| 亚洲国产一区二区三区波多野结衣| 各种女BBWBBWBBW么| 欧美精产国品一二三产品工艺| 亚洲情A成黄在线观看动漫尤物| 国产成人麻豆精品午夜福利在线 | 精品国产一区二区三区麻豆| 天天爽狠狠噜天天噜日日噜| XOXOXO性ⅩYY欧美人与人| 里番本子纯肉侵犯肉全彩无码| 亚洲成AV人片无码迅雷下载| 国产成人午夜福利院| 日本适合十八岁以上的护肤品男| 中文字幕人妻不在线无码视频 | 嫩草影院网站进入| 亚洲无人区码一码二码三码的含义| 国产免费AV片无码永久免费| 少妇午夜AV一区| YY6090新视觉影院| 欧美成人精品第一区| 中国成熟妇女毛茸茸| 久久精品国产清高在天天线| 亚洲AV无码专区国产乱码软件 | 无码人妻精品一区二区三区99仓 | 2019NV天堂香蕉在线观看| 久久久久亚洲AV无码专区喷水| 亚洲国产成人A精品不卡在线| 国产乱人伦APP精品久久| 少妇被躁爽到高潮无码文| 成人欧美一区二区三区1314| 人妻av一区二区三区| VODAFONEWIFI另类| 欧美高清VIDEOS36OP| 67194熟妇人妻欧美日韩| 蜜臀AV在线无码国产| 影音先锋日日狠狠久久| 久久久久亚洲AV成人网址| 亚洲日韩AV片在线观看| 精品无人区麻豆乱码1区2区新区| 亚洲成人AV无码| 好男人好社区好资源在线| 亚洲AV无码专区精品无码| 国产亚洲成AV片在线观看蜜桃| 无码秘 蜜桃一区二区三区| 国产成人片AⅤ在线观看 | 男女无遮挡猛进猛出免费观看视频| 又黄又爽又无遮挡免费的网站| 久久天天躁夜夜躁狠狠2018| 一二三四在线观看视频韩国| 久久久久夜色精品国产明星| 艳妇臀荡乳欲伦69调教视频| 久久人人爽人人爽人人片AV麻烦| 野花韩国高清免费视频6| 久久天天躁狠狠躁夜夜96流白浆 | 亚洲 欧洲 日产 经典| 国内精品久久人妻无码网站 | 91人人妻人人澡人人爽精品| 欧美人与性动交XXⅩXX| 白嫩光屁股BBBBBBBBB| 日韩精品真人荷官无码| 国产AⅤ激情无码久久| 午夜精品一区二区三区在线观看 | 饭桌上故意张开腿让公H| 私人IMAX情侣影院家庭影院| 国产乱码日产精品BD| 亚洲国产一区二区三区波多野结衣| 久9视频这里只有精品试看| 一进一出一爽又粗又大| 内射口爆少妇麻豆| AV日日碰狠狠躁久久躁| 日韩精品人妻AV一区二区三区| 国产AV无码区亚洲| 午夜亚洲AⅤ无码高潮片在线观看 午夜亚洲AⅤ无码高潮片苍井空 | 亚洲AV无码成人精品区天堂| 精品国产一区二区三区无码| 在线播放国产精品三级| 欧洲成人午夜精品无码区久久| 成熟丰满熟妇高潮XXXXX视频 | 国产AV永久无码精品网站| 亚洲 欧美 国产 日韩 精品| 精品人伦一区二区三区潘金莲| 一区二区三区午夜无码视频| 欧美A片XⅩX黑人性受| 抽插丰满内射高潮视频| 小雪被老汉玩遍各种方式| 久久精品国产99精品亚洲| 99久久人妻无码精品系列| 搡老女人P老熟妇老熟女| 国产乱人伦AⅤ在线麻豆A| 亚洲人成网站999久久久综合| 免费人成在线观看网站免费观看| ぱらだいす天堂中文网.WWW | 国产精品无码素人福利免费| 亚洲欧洲无码一区二区三区| 男人的又粗又长又硬有白色液体| 成人H动漫精品一区二区无码 | 国内精品一线二线三线黄| 又色又爽又黄18禁美女裸身无遮 | 久久无码无码久久综合综合 | 国产精品久久久久影院| 亚洲熟妇无码八V在线播放| 欧美三级在线播放| 国产精品成人片在线观看| 亚洲人成网站观看在线播放| 欧一欧二欧三乱码| 国产乱来乱子视频| 中国少妇内射XXXXⅩHD| 色欲av伊人久久大香线蕉影院| 黑人大雞巴ⅩⅩⅩ高潮| 97国产精华最好的产品在线| 四虎精品成人免费视频| 九九久久精品国产| 被公侵犯的漂亮人妻中文字幕| 亚洲AVT无码天堂网| 蜜芽亚洲日韩欧美国产高清ΑV| 成人免费无码大片A毛片小说| 亚洲AV无码一区二区三区蜜桃| 妺妺窝人体色WWW在线韩国| 国产99久60在线视频 | 传| 亚洲午夜国产精品无码老牛影视| 人人狠狠综合久久亚洲婷婷| 国产综合AV一区二区三区无码| 97色精品视频在线观看| 小SAO货边洗澡边CAO你| 欧美猛少妇性ⅩXXX| 黄 色 网 站 免 费 涩涩屋|