日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pyspider 安装 和 快速开始

發布時間:2024/7/23 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyspider 安装 和 快速开始 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

From:官方文檔 --- 快速開始:http://docs.pyspider.org/en/latest/Quickstart/

pyspider github 地址:https://github.com/binux/pyspider

pyspider 官方文檔:http://docs.pyspider.org/en/latest/

爬蟲框架 pyspider個人總結(詳細)熟悉:https://www.jianshu.com/p/39c7371dd6c2

?

?

python3.7+ 與 pyspider 的坑

?

python3.7+ 與 pyspider 的坑:https://zhuanlan.zhihu.com/p/115629460

?

安裝 pyspider :pip install pyspider

安裝之后先驗證是否安裝成功,在CMD下輸入

pyspider # 或者 pyspider all,但是后面執行 pyspider all 好像還卡死。。。# 兩者是一樣的,新的 pyspider框架已經整合了,所以使用 pyspider 就好

執行完報錯:

Traceback (most recent call last):File "/ffk_learn/software/Python-3.7.0/ffk_py/bin/pyspider", line 7, in <module>from pyspider.run import mainFile "/ffk_learn/software/Python-3.7.0/ffk_py/lib/python3.7/site-packages/pyspider/run.py", line 231async=True, get_object=False, no_input=False):^ SyntaxError: invalid syntax

因為從 python3.5 開始把 async 和 await 設為關鍵字了,這里?async 作為參數名與關鍵字沖突了。

解決方法:將相關腳本里面的 async 換一個名字即可,當然最好還是要 pyspider 的大佬更新下 pyspider 腳本。涉及的腳本文件有以下 3 個:

  • 1 ffk_py/lib/python3.7/site-packages/pyspider/run.py
  • 2 ffk_py/lib/python3.7/site-packages/pyspider/fetcher/tornado_fetcher.py 
  • 3? ? ?ffk_py/lib/python3.7/site-packages/pyspider/webui/app.py 

找到對應的 py 文件,將 async 修改為其他名稱,

我這里修改為 shark (?我本機路徑:C:\Python38\Lib\site-packages\pyspider )。在以下幾個文件中存在:

pyspider ---> run.py pyspider ---> fetcher ---> tornado_fetcher.py pyspider ---> webui ---> app.py

修改時注意:不要全部替換,只替換函數中的參數,和字段部分

修改完后,使用 pyspider 命令,輸入 http://localhost:5000 運行出現下面錯誤

ValueError: Invalid configuration: - Deprecated option 'domaincontroller': use 'http_authenticator

原因是因為 WsgiDAV 發布了版本 pre-release 3.x。

解決方法如下:在安裝包中找到 pyspider 的資源包,然后找到 webui 文件里面的 webdav.py 文件打開,

修改第 209 行:

'domaincontroller': NeedAuthController(app),

修改為:

'http_authenticator':{'HTTPAuthenticator':NeedAuthController(app), },

修改后截圖:

如果不想修改源文件,第二種方法:降低版本,因為 3.0 的版本不兼容,所以替換為 2.4.1

pip uninstall wsgidav pip install wsgidav==2.4.1

這里使用修改源碼的方式,修改完,保存,然后再執行 pyspider ,這時會報如下錯誤:

原因:

  • 1、沒有安裝 werkzeug
  • 2、werkzeug 的版本為 1.0.0,這個版本中沒有 DispatcherMiddleware 方法

解決辦法:卸載 werkzeug,重新安裝低版本的 werkzeug

# 卸載 python -m pip uninstall werkzeug# 安裝指定版本 python -m pip install werkzeug==0.16.0# 0.16 版本不行可以再試 0.15 版本 # python -m pip install werkzeug==0.15

再次執行 pyspider ( 執行?pyspider all? 一直卡到?result_worker starting…?,不知道為啥。網上說如果一直卡在 result_worker starting,可以新打開一個終端(這個終端暫時不關),再次輸入pyspider,輸入完成后再關閉第一個終端),說明成功了

瀏覽器訪問 http://localhost:5000?就可以打開頁面了。

?

?

?

pyspider 介紹

?

?

?

?

快速上手

?

安裝之后先驗證是否可以正常使用

  • 打開控制臺, cd到你要創建的項目路徑

  • 輸入pyspider?或?pyspider all?

  • 當看到如下信息時說明 pyspider 啟動成功

    (base) D:\pyspider_test\test1>pyspider c:\users\zh\anaconda3\lib\site-packages\pyspider\libs\utils.py:196: FutureWarning: timeout is not supported on your platform.warnings.warn("timeout is not supported on your platform.", Future Warning) [I 191030 19:27:06 result_worker:49] result_worker starting... [I 191030 19:27:06 processor:211] processor starting... [I 191030 19:27:06 tornado_fetcher:638] fetcher starting... [I 191030 19:27:06 scheduler:647] scheduler starting... [I 191030 19:27:06 scheduler:782] scheduler.xmlrpc listening on 127. 0.0.1:23333 [I 191030 19:27:06 scheduler:126] project douban_top250 updated, sta tus:TODO, paused:False, 0 tasks [I 191030 19:27:06 scheduler:586] in 5m: new:0,success:0,retry:0,fai led:0 [I 191030 19:27:07 app:76] webui running on 0.0.0.0:5000 phantomjs fetcher running on port 25555
  • 打開瀏覽器,?訪問 http://localhost:5000/,進入 pyspider 控制臺

  • 點擊 Create ,輸入 項目名(Project Name )和 要爬取的 目標網站(Start URL(s))

  • 你將會看到這樣一個頁面:

    ?

  • 代碼區沒有自動補全功能,?你可以在 pycharm 上寫好粘過來,再進行調試,以 www.baidu.com 為例

  • 調試好之后,回退到主頁面,將狀態改為?DEBUG?就可以運行爬取工作了

    ?

  • 你可以通過把鼠標放到?progress?中的4個進度條上以查看執行狀態詳情, 當all變成純綠色, 就代表爬蟲執行完畢

  • 點擊?Results, 可以查看你爬取到的內容

  • ?

    ?

    刪除項目

    ?

    第一種方法,將目標項目的status改成STOP,然后點擊[group],輸入delete,如圖,

    pyspider 會在 24H 后自動刪掉這個項目

    第二種方法,到你創建項目的文件夾,刪除?data?文件夾,就會刪除當前文件夾中所有的項目

    ?

    ?

    ?

    ?

    總結

    以上是生活随笔為你收集整理的pyspider 安装 和 快速开始的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。