<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] # 安裝 如果你使用 ubuntu請先安裝以下依賴包:`apt-get install python python-dev python-distribute python-pip libcurl4-openssl-dev libxml2-dev libxslt1-dev python-lxml` 如果需要調用js解析框架,請先照著[phantomjs官網](http://phantomjs.org/build.html)說明安裝`phantomjs`應用,并把可執行程序添加到系統環境變量`PATH`中以方便調用。 以上安裝完成后,執行以下命令安裝pyspider `pip install pyspider` # 啟動環境 安裝完成后運行以下命令運行pyspider程序 `pyspider` >[info]注意:`pyspider`命令默認會以all模式運行所有的組件,方便調試。作者建議在線上模式分開部署各各組件,詳情請查看部署章節 運行成功后用瀏覽器打開http://localhost:5000/訪問控制臺 # 編寫腳本 在web控制臺點create按鈕新建任務,項目名自定義。本例項目名為test。 ![document/2015-10-08/5615f3a52bec8](https://box.kancloud.cn/document_2015-10-08_5615f3a52bec8.png) 保存后打開代碼編輯器(代碼編輯器默認有簡單的實例代碼) ![document/2015-10-08/5615f42ae7d11](https://box.kancloud.cn/document_2015-10-08_5615f42ae7d11.png) 右側就是代碼編輯器,以后可以直接在這添加修改代碼。本實例就直接使用以自帶的代碼吧。代碼如下 ``` #!/usr/bin/env python # -*- encoding: utf-8 -*- # Created on 2015-10-08 12:45:44 # Project: test 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)` 方法是入口代碼。當在web控制臺點擊`run`按鈕時會執行此方法。 * `self.crawl(url, callback=self.index_page)`這個方法是調用API生成一個新的爬取任務,這個任務被添加到待抓取隊列。 * `def index_page(self, response)` 這個方法獲取一個`Response`對象。 `response.doc`是pyquery對象的一個擴展方法。pyquery是一個類似于jQuery的對象選擇器。 * `def detail_page(self, response)`返回一個結果集對象。這個結果默認會被添加到resultdb數據庫(如果啟動時沒有指定數據庫默認調用sqlite數據庫)。你也可以重寫`on_result(self,result)`方法來指定保存位置。 更多知識: * `@every(minutes=24*60, seconds=0)` 這個設置是告訴`scheduler`(調度器)`on_start`方法每天執行一次。 * `@config(age=10 * 24 * 60 * 60)` 這個設置告訴`scheduler`(調度器)這個`request`(請求)過期時間是10天,10天內再遇到這個請求直接忽略。這個參數也可以在`self.crawl(url, age=10*24*60*60)` 和 `crawl_config`中設置。 * `@config(priority=2)` 這個是優先級設置。數字越小越先執行。 # 執行任務 * 當您完成腳本編寫,調試無誤后,請先保存您的腳本!然后返回到控制臺首頁。 * 直接點擊項目狀態`status`那欄,把狀態由TODO改成`debug`或`running`。 * 最后點擊項目最右邊那個RUN按鈕啟動項目。 ![document/2015-10-08/5615f9fd6410a](https://box.kancloud.cn/document_2015-10-08_5615f9fd6410a.png) 當`progress`那欄有數據顯示說明啟動成功。到現在就可以點最右側的`results`查看結果了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看