成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python中scrapy的介紹和使用-創(chuàng)新互聯(lián)

這篇文章給大家分享的是Python中scrapy的介紹和使用的詳細(xì)教程,相信大部分人都還不知道怎么部署,為了讓大家學(xué)會(huì),故而給大家總結(jié)了以下內(nèi)容。

亞東ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

scrapy的流程

Python中scrapy的介紹和使用

其流程可以描述如下:

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

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

● 爬蟲提取url地址,組裝成request對(duì)象---->爬蟲中間件--->引擎--->調(diào)度器

● 爬蟲提取數(shù)據(jù)--->引擎--->管道

● 管道進(jìn)行數(shù)據(jù)的處理和保存

注意:

圖中綠色線條的表示數(shù)據(jù)的傳遞

注意圖中中間件的位置,決定了其作用

注意其中引擎的位置,所有的模塊之前相互獨(dú)立,只和引擎進(jìn)行交互

scrapy中每個(gè)模塊的具體作用

Python中scrapy的介紹和使用

1.scrapy項(xiàng)目實(shí)現(xiàn)流程

創(chuàng)建一個(gè)scrapy項(xiàng)目:scrapy startproject 項(xiàng)目名

生成一個(gè)爬蟲:scrapy genspider 爬蟲名 允許爬取的范圍

提取數(shù)據(jù):完善spider,使用xpath等方法

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

2. 創(chuàng)建scrapy項(xiàng)目

命令:scrapy startproject +<項(xiàng)目名字>

示例:scrapy startproject myspider

生成的目錄和文件結(jié)果如下:

Python中scrapy的介紹和使用

settings.py中的重點(diǎn)字段和內(nèi)涵

● USER_AGENT 設(shè)置ua

● ROBOTSTXT_OBEY 是否遵守robots協(xié)議,默認(rèn)是遵守

● CONCURRENT_REQUESTS 設(shè)置并發(fā)請(qǐng)求的數(shù)量,默認(rèn)是16個(gè)

● DOWNLOAD_DELAY 下載延遲,默認(rèn)無延遲

● COOKIES_ENABLED 是否開啟cookie,即每次請(qǐng)求帶上前一次的cookie,默認(rèn)是開啟的

● DEFAULT_REQUEST_HEADERS 設(shè)置默認(rèn)請(qǐng)求頭

● SPIDER_MIDDLEWARES 爬蟲中間件,設(shè)置過程和管道相同

● DOWNLOADER_MIDDLEWARES 下載中間件

創(chuàng)建爬蟲

命令:scrapy genspider +<爬蟲名字> + <允許爬取的域名>

生成的目錄和文件結(jié)果如下:

Python中scrapy的介紹和使用

完善spider

完善spider即通過方法進(jìn)行數(shù)據(jù)的提取等操做:

Python中scrapy的介紹和使用

注意:

● response.xpath方法的返回結(jié)果是一個(gè)類似list的類型,其中包含的是selector對(duì)象,操作和列表一樣,但是有一些額外的方法

● extract() 返回一個(gè)包含有字符串的列表

● extract_first() 返回列表中的第一個(gè)字符串,列表為空沒有返回None

● spider中的parse方法必須有

● 需要抓取的url地址必須屬于allowed_domains,但是start_urls中的url地址沒有這個(gè)限制

● 啟動(dòng)爬蟲的時(shí)候注意啟動(dòng)的位置,是在項(xiàng)目路徑下啟動(dòng)

數(shù)據(jù)傳遞到pipeline

Python中scrapy的介紹和使用

為什么要使用yield?

● 讓整個(gè)函數(shù)變成一個(gè)生成器,有什么好處呢?

● 遍歷這個(gè)函數(shù)的返回值的時(shí)候,挨個(gè)把數(shù)據(jù)讀到內(nèi)存,不會(huì)造成內(nèi)存的瞬間占用過高

● python3中的range和python2中的xrange同理

注意:

yield能夠傳遞的對(duì)象只能是:BaseItem,Request,dict,None

6. 完善pipeline

Python中scrapy的介紹和使用

Python中scrapy的介紹和使用

pipeline在settings中能夠開啟多個(gè),為什么需要開啟多個(gè)?

● 不同的pipeline可以處理不同爬蟲的數(shù)據(jù)

● 不同的pipeline能夠進(jìn)行不同的數(shù)據(jù)處理的操作,比如一個(gè)進(jìn)行數(shù)據(jù)清洗,一個(gè)進(jìn)行數(shù)據(jù)的保存

pipeline使用注意點(diǎn)

● 使用之前需要在settings中開啟

● pipeline在setting中鍵表示位置(即pipeline在項(xiàng)目中的位置可以自定義),值表示距離引擎的遠(yuǎn)近,越近數(shù)據(jù)會(huì)越先經(jīng)過

● 有多個(gè)pipeline的時(shí)候,process_item的方法必須return item,否則后一個(gè)pipeline取到的數(shù)據(jù)為None值

● pipeline中process_item的方法必須有,否則item沒有辦法接受和處理

● process_item方法接受item和spider,其中spider表示當(dāng)前傳遞item過來的spider

看完上述內(nèi)容,你們對(duì)Python中scrapy有進(jìn)一步的了解嗎?如果還想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道,感謝各位的閱讀。

網(wǎng)站欄目:Python中scrapy的介紹和使用-創(chuàng)新互聯(lián)
新聞來源:http://jinyejixie.com/article14/ccjede.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)用戶體驗(yàn)、自適應(yīng)網(wǎng)站虛擬主機(jī)、網(wǎng)站營(yíng)銷、全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
江津市| 临邑县| 论坛| 延安市| 卫辉市| 九龙县| 高要市| 余干县| 库尔勒市| 余庆县| 涟源市| 高阳县| 师宗县| 砀山县| 工布江达县| 云阳县| 泰顺县| 天等县| 延安市| 屯门区| 论坛| 宁德市| 遂平县| 通江县| 蕉岭县| 沐川县| 博湖县| 德钦县| 曲水县| 公安县| 乐安县| 四平市| 方山县| 贵德县| 博罗县| 庆元县| 中宁县| 桑植县| 海安县| 墨玉县| 浦城县|