亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

利用 scrapy 集成社區爬蟲(chóng)功能

優(yōu)采云 發(fā)布時(shí)間: 2020-05-13 08:00

  社區活躍度或則貢獻越來(lái)越遭到注重,往往會(huì )作為獲得工作或則承接項目的加分項。為了便捷用戶(hù)展示自己的社區資料,中降低了一個(gè)社區爬蟲(chóng)功能。

  當前只爬取了用戶(hù)主頁(yè)上一些簡(jiǎn)單的信息,如果有需求請講到我們的

 ?。?/p>

  

  代碼放到了github上,源碼

  如圖所示,在之前的構架上(),我降低了黑色實(shí)線(xiàn)框內的部份,包括:

  

  scrapy是一個(gè)python爬蟲(chóng)框架,想要快速實(shí)現爬蟲(chóng)推薦使用這個(gè)。

  可以參考如下資料自行學(xué)習:

  官方文檔和官方事例

  一個(gè)簡(jiǎn)單明了的入門(mén)博客,注意:博客中scrapy的安裝步驟可以簡(jiǎn)化,直接使用 pip install scrapy,安裝過(guò)程中可能會(huì )缺乏幾個(gè)lib,ubuntu使用 apt-get install libffi-dev libxml2-dev libxslt1-dev -y

  mongo特別適宜儲存爬蟲(chóng)數據,支持異構數據。這意味著(zhù)你可以隨時(shí)改變爬蟲(chóng)策略抓取不同的數據,而不用害怕會(huì )和先前的數據沖突(使用sql就須要操蛋的更改表結構了)。

  通過(guò)scrapy的pipline來(lái)集成mongo,非常便捷。

  安裝mongo

  apt-get install mongodb

pip install pymongo

  在編撰爬蟲(chóng)的過(guò)程中須要使用xpath表達式來(lái)提取頁(yè)面數據,在chrome中可以使用XPath Helper來(lái)定位元素,非常便捷。使用方式:

  打開(kāi)XPath Helper插件

  鼠標點(diǎn)擊一下頁(yè)面,按住shift鍵,把鍵盤(pán)聯(lián)通到須要選定的元素上,插件會(huì )將該元素標記為紅色,并給出對應的xpath表達式,如下圖:

  

  在爬蟲(chóng)程序中使用這個(gè)表達式selector.xpath(..../text()").extract()

  編寫(xiě)好爬蟲(chóng)后,我門(mén)可以通過(guò)執行scrapy crawl spidername命令來(lái)運行爬蟲(chóng)程序,但這還不夠。

  通常我們通過(guò)自動(dòng)或則定時(shí)任務(wù)(cron)來(lái)執行爬蟲(chóng)爬蟲(chóng)社區,而這兒我們須要通過(guò)web應用來(lái)觸發(fā)爬蟲(chóng)。即,當用戶(hù)更新綁定的社交帳號時(shí),去執行一次爬蟲(chóng)。來(lái)剖析一下:

  爬蟲(chóng)執行過(guò)程中會(huì )阻塞當前進(jìn)程,為了不阻塞用戶(hù)懇求,必須通過(guò)異步的方法來(lái)運行爬蟲(chóng)。

  可能有多個(gè)用戶(hù)同時(shí)更新資料,這就要求才能同時(shí)執行多個(gè)爬蟲(chóng),并且要保證系統不會(huì )超員。

  可以擴充成分布式的爬蟲(chóng)。

  鑒于項目當前的構架,準備使用celery來(lái)執行異步爬蟲(chóng)。但是遇到了兩個(gè)問(wèn)題:

  scrapy框架下,需要在scrapy目錄下執行爬蟲(chóng),否則難以獲取到settings,這個(gè)用上去有點(diǎn)別扭,不過(guò)能夠解決。

  celery中反復運行scrapy的爬蟲(chóng)會(huì )報錯:raise error.ReactorNotRestartable()。原因是scrapy用的twisted調度框架,不可以在進(jìn)程中重啟。

  stackoverflow上有討論過(guò)這個(gè)問(wèn)題,嘗試了一下,搞不定,放棄這個(gè)方案。如果你有解決這個(gè)問(wèn)題的方式,期待分享:)

  scrapy文檔中提及了可以使用scrapyd來(lái)布署,scrapyd是一個(gè)用于運行scrapy爬蟲(chóng)的webservice,使用者才能通過(guò)http請求來(lái)運行爬蟲(chóng)。

  你只須要使用scrapyd-client將爬蟲(chóng)發(fā)布到scrapyd中,然后通過(guò)如下命令就可以運行爬蟲(chóng)程序。

  $ curl http://localhost:6800/schedule.json -d project=myproject -d spider=spider2

{"status": "ok", "jobid": "26d1b1a6d6f111e0be5c001e648c57f8"}

  這意味哪些:

  爬蟲(chóng)應用和自己的web應用完全前饋,只有一個(gè)http插口。

  由于使用http插口,爬蟲(chóng)可以放到任何還能被訪(fǎng)問(wèn)的主機上運行。一個(gè)簡(jiǎn)易的分布式爬蟲(chóng),不是嗎?

  scrapyd使用sqlite隊列來(lái)保存爬蟲(chóng)任務(wù),實(shí)現異步執行。

  scrapyd可以同時(shí)執行多個(gè)爬蟲(chóng),最大進(jìn)程數可配,防止系統過(guò)載。

  歡迎使用我們的爬蟲(chóng)功能來(lái)搜集社交資料。

  成為雨點(diǎn)兒網(wǎng)用戶(hù)爬蟲(chóng)社區,進(jìn)入用戶(hù)主頁(yè),點(diǎn)擊編輯按鍵

  

  填寫(xiě)社交帳號,點(diǎn)擊更新按鍵

  

  爬蟲(chóng)會(huì )在幾秒內完成工作,刷新個(gè)人主頁(yè)能夠看見(jiàn)你的社區資料了,你也可以把個(gè)人主頁(yè)鏈接附在電子簡(jiǎn)歷中喲:)

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久