成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Scrapy入門程序點(diǎn)評(píng)

baiy / 2300人閱讀

摘要:本文大部分內(nèi)容摘抄自官網(wǎng)的,看到巧妙之處則加了點(diǎn)評(píng)。,接下來(lái)的工作至此,框架已經(jīng)明確選定了,接下來(lái),我們將進(jìn)一步研讀的文檔,研究怎樣把的封裝成需要的。,文檔修改歷史,首次發(fā)布

1,引言

在《Scrapy的架構(gòu)初探》一文,我基于爬蟲開發(fā)的經(jīng)驗(yàn)對(duì)Scrapy官網(wǎng)文章作了點(diǎn)評(píng)和解讀,事件驅(qū)動(dòng)的異步處理架構(gòu)、極強(qiáng)的模塊化等是個(gè)絕好的框架,接著我細(xì)讀了官網(wǎng)的《Scrapy at a glance》,更加強(qiáng)了我的感受:就是他了——開源Python網(wǎng)絡(luò)爬蟲項(xiàng)目需要一個(gè)爬蟲框架,我不想重復(fù)發(fā)明輪子,只想專注于爬蟲里面的提取器的生成和使用,也就是Scrapy中的Spider部分。

本文大部分內(nèi)容摘抄自Scrapy官網(wǎng)的《Scrapy at a glance》,看到Scrapy巧妙之處則加了點(diǎn)評(píng)。

2,Scrapy的Spider例子

在Scrapy的框架中,Spider與GooSeeker開源爬蟲的提取器類似,核心特征是

Spider通常針對(duì)一個(gè)特定網(wǎng)站

Spider里面存了爬行入口URLs集合

Scrapy的引擎順序拿Spider中的入口URL,構(gòu)造Request對(duì)象,啟動(dòng)消息循環(huán)

Spider提供接口方法,把抓取下來(lái)的內(nèi)容進(jìn)行輸出

對(duì)GooSeeker的MS謀數(shù)臺(tái)和DS打數(shù)機(jī)比較了解的讀者,可以把Spider想象成:MS謀數(shù)臺(tái)上定義的一組抓取規(guī)則 + 會(huì)員中心的爬蟲羅盤

下面我們從官網(wǎng)拷貝一個(gè)例子:

class StackOverflowSpider(scrapy.Spider):
    name = "stackoverflow"
    start_urls = ["http://stackoverflow.com/questions?sort=votes"]

    def parse(self, response):
        for href in response.css(".question-summary h3 a::attr(href)"):
            full_url = response.urljoin(href.extract())
            yield scrapy.Request(full_url, callback=self.parse_question)

    def parse_question(self, response):
        yield {
            "title": response.css("h1 a::text").extract()[0],
            "votes": response.css(".question .vote-count-post::text").extract()[0],
            "body": response.css(".question .post-text").extract()[0],
            "tags": response.css(".question .post-tag::text").extract(),
            "link": response.url,
        }

看這個(gè)例子需要注意以下幾點(diǎn)

start_urls存儲(chǔ)入口網(wǎng)址列表,本例只有一個(gè)網(wǎng)址

parse()函數(shù)是爬到了網(wǎng)頁(yè)后執(zhí)行的,是由引擎回調(diào)的

本來(lái)到parse()就完成了,但是這個(gè)例子展示了一個(gè)兩級(jí)抓取的案例,在parse()里面構(gòu)造了下一級(jí)抓取的任務(wù),生成Request對(duì)象,并登記一個(gè)回調(diào)函數(shù)

parse_question()是第二級(jí)的解析網(wǎng)頁(yè)的函數(shù),返回了一個(gè)JSON對(duì)象

事件驅(qū)動(dòng)模式顯而易見,可以構(gòu)造好多Request,丟給引擎即可,不用阻塞式等待

官網(wǎng)文章還總結(jié)了其他很多功能特性,總之,Scrapy是一個(gè)十分完善和強(qiáng)大的框架。

3,接下來(lái)的工作

至此,Scrapy框架已經(jīng)明確選定了,接下來(lái),我們將進(jìn)一步研讀Scrapy的文檔,研究怎樣把GooSeeker的gsExtractor封裝成Scrapy需要的Spider。

4,文檔修改歷史

2016-06-13:V1.0,首次發(fā)布

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/38003.html

相關(guān)文章

  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • python

    Python裝飾器為什么難理解? 無(wú)論項(xiàng)目中還是面試都離不開裝飾器話題,裝飾器的強(qiáng)大在于它能夠在不修改原有業(yè)務(wù)邏輯的情況下對(duì)代碼進(jìn)行擴(kuò)展,權(quán)限校驗(yàn)、用戶認(rèn)證、日志記錄、性能測(cè)試、事務(wù)處理、緩存等都是裝飾器的絕佳應(yīng)用場(chǎng)景,它能夠最大程度地對(duì)代碼進(jìn)行復(fù)用。 但為什么初學(xué)者對(duì)裝飾器的理解如此困難,我認(rèn)為本質(zhì)上是對(duì)Py… Python 實(shí)現(xiàn)車牌定位及分割 作者用 Python 實(shí)現(xiàn)車牌定位及分割的實(shí)踐。 ...

    chenatu 評(píng)論0 收藏0
  • Scrapy的架構(gòu)初探

    摘要:引言本文簡(jiǎn)單講解一下的架構(gòu)。沒錯(cuò),開源的通用提取器就是要集成到架構(gòu)中,最看重的是的事件驅(qū)動(dòng)的可擴(kuò)展的架構(gòu)。架構(gòu)圖就是針對(duì)特定目標(biāo)網(wǎng)站編寫的內(nèi)容提取器,這是在通用網(wǎng)絡(luò)爬蟲框架中最需要定制的部分。 1. 引言 本文簡(jiǎn)單講解一下Scrapy的架構(gòu)。沒錯(cuò),GooSeeker開源的通用提取器gsExtractor就是要集成到Scrapy架構(gòu)中,最看重的是Scrapy的事件驅(qū)動(dòng)的可擴(kuò)展的架構(gòu)。除了...

    劉明 評(píng)論0 收藏0
  • 基于 Python 的 Scrapy 爬蟲入門:環(huán)境搭建

    摘要:一基礎(chǔ)環(huán)境由于不是職業(yè)的開發(fā)者,因此環(huán)境是基于的。二安裝打開命令行工具創(chuàng)建虛擬環(huán)境,默認(rèn)情況下會(huì)創(chuàng)建目錄,所有的虛擬環(huán)境都會(huì)產(chǎn)生一個(gè)子目錄保存在此,里面包含基本程序文件以及庫(kù)文件。 目錄 基于 Python 的 Scrapy 爬蟲入門:環(huán)境搭建 基于 Python 的 Scrapy 爬蟲入門:頁(yè)面提取 基于 Python 的 Scrapy 爬蟲入門:圖片處理 作為一個(gè)全棧工程師(...

    Gu_Yan 評(píng)論0 收藏0
  • Scrapy 框架入門簡(jiǎn)介

    摘要:解析的方法,每個(gè)初始完成下載后將被調(diào)用,調(diào)用的時(shí)候傳入從每一個(gè)傳回的對(duì)象來(lái)作為唯一參數(shù),主要作用如下負(fù)責(zé)解析返回的網(wǎng)頁(yè)數(shù)據(jù),提取結(jié)構(gòu)化數(shù)據(jù)生成生成需要下一頁(yè)的請(qǐng)求。 Scrapy 框架 Scrapy是用純Python實(shí)現(xiàn)一個(gè)為了爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,用途非常廣泛。 框架的力量,用戶只需要定制開發(fā)幾個(gè)模塊就可以輕松的實(shí)現(xiàn)一個(gè)爬蟲,用來(lái)抓取網(wǎng)頁(yè)內(nèi)容以及各種圖片,非常...

    Coding01 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<