pyspider 快速開始

2023-02-16 16:06 更新

安裝

pip install pyspider命令行運行 pyspider瀏覽器運行腳本編輯界面WebUI http://localhost:5000/

如果你使用的是ubuntu系統(tǒng),嘗試:

apt-get install python python-dev python-distribute python-pip \
libcurl4-openssl-dev libxml2-dev libxslt1-dev python-lxml \
libssl-dev zlib1g-dev

先去安裝二進制的包

如果需要請安裝PhantomJS http://phantomjs.org/build.html

應該注意PhantomJS只有把啟動路徑添加到系統(tǒng)環(huán)境中才能使用。

注意:pyspider命令是默認啟動所all模型,該模型是使用線程和子進程的。有關生產(chǎn)環(huán)境的,請轉(zhuǎn)到鏈接Deployment閱讀

警告:腳本編輯界面WebUI,是對外開放的。這會對你的電腦造成不必要的風險,請在內(nèi)網(wǎng)下使用它。

編寫第一個腳本

    from pyspider.libs.base_handler import *
    class Handler(BaseHandler):
        crawl_config = {
        }
    
        @every(minutes=24 * 60)
        def on_start(self):
            self.crawl('http://scrapy.org/', callback=self.index_page)
    
        @config(age=10 * 24 * 60 * 60)
        def index_page(self, response):
            for each in response.doc('a[href^="http"]').items():
                self.crawl(each.attr.href, callback=self.detail_page)
    
        @config(priority=2)
        def detail_page(self, response):
            return {
                "url": response.url,
                "title": response.doc('title').text(),
            }
  • def on_start(self) 是腳本的入口。當你點擊表盤上的run按鈕的時候,將會運行它。
  • self.crawl(url, callback=self.index_page)* 這是一個最重要的API方法。它將會添加新的任務到采集隊列。通過self.crawl的參數(shù),指定更多的選項。
  • def index_page(self, response)會獲得一個所有 Response* 對象. response.doc*是一個pyquery對象(有jQuery-like API去選擇提取元素的信息)。
  • def detail_page(self, response)返回一個字段對象作為結(jié)果。這個結(jié)果默認會被resultdb捕捉。你也可以重寫on_result(self, result)方法,去管理采集的結(jié)果。

更多的內(nèi)容你需要知道的

  • @every(minutes=24*60, seconds=0)*是一個助手去告訴調(diào)度器on_start方法每天都要運行。
  • @config(age=10 * 24 * 60 * 60)*指定了self.crawl默認的age參數(shù)。頁面類型是index_page(當callback=self.index_page的時候) age參數(shù)可以通過self.crawl(url, age=10*24*60*60)(優(yōu)先級高一定)或者crawl_config(優(yōu)先級底一點)指定。
  • age=10 * 24 * 60 * 60*這個參數(shù)是告訴調(diào)度器拋棄這個請求,如果這個請求在十天之內(nèi)爬過。pyspider默認是不會采集相同的url,即使你修改代碼。剛開始第一次運行爬蟲同時維護代碼是比較常見的。第二次運行也不會重新爬取。(閱讀itag去解決問題)
  • @config(priority=2)*標記了detail pages應該先采集。

你可以調(diào)試你的腳本一步一步的點擊run按鈕。轉(zhuǎn)到follows儀表盤,點擊play按鈕,去繼續(xù)。

開始運行

  1. 保存你的爬蟲
  2. 返回腳本編輯界面首頁,找到你的項目
  3. 改變下狀態(tài)到DEBUG或者RUNNING
  4. 點擊run按鈕

主頁圖片


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號