91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python pyspider的使用方法

發布時間:2021-07-13 18:08:54 來源:億速云 閱讀:370 作者:chen 欄目:大數據

這篇文章主要介紹“python pyspider的使用方法”,在日常操作中,相信很多人在python pyspider的使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python pyspider的使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

概要:了解了爬蟲的基礎知識后,接下來我們來使用框架來寫爬蟲,用框架會使我們寫爬蟲更加簡單,接下來我們來了解一下,pyspider框架的使用,了解了該框架,媽媽再也不用擔心我們的學習了。

前期準備:

1、安裝pyspider:pip3 install pyspider

2、安裝Phantomjs:在官網下載解壓后,并將pathtomjs.exe拖進安裝python路徑下的Scripts下即可。

下載地址:https://phantomjs.org/dowmload.html

   官方API地址:http://www.pyspider.cn/book/pyspider/self.crawl-16.html

2、用法(這里只簡要介紹,更多請看官方文檔):

1、首先啟動pyspider

在黑窗口中輸入pyspider all 即可看到如下。

python pyspider的使用方法

提醒我們在http://localhost:5000端口打開即可。(注意不要關閉!

打開后點擊右邊的Create創建項目,Project Name是項目名稱,

Start URL(s)是你要爬取的地址點擊Create就可以創建一個項目。

2、了解pyspider的格式和過程

創建之后我們會看到如下:

python pyspider的使用方法

  • Handler方法是pysqider的主類,繼承BaseHandler,所有的功能,只需要一個Handler就可以解決。

  • crawl_config = {}表示全局的配置,比如可以之前學的那樣,定義一個headers

  • @every(minutes=24 * 60)every屬性表示爬取的時間間隔,minutes=24*60即是一天的意思,也就是說一天爬取一次。

  • on_start方法:是爬取的入口,通過調用crawl方法來發送請求,

  • callback=self.index_page:callback表示回調函數,也就是說將請求的結果交給index_page來處理。

  • @config(age=10 * 24 * 60 * 60)是設置任務的有效時間為10天,也就是說在10天內不會重復執行。

  • index_page函數:就是進行處理的函數,參數response,表示請求頁面的返回內容。

  • 接下來的內容相必大家也看得懂,通過pyquery解析器(pyspider可以直接使用該解析器)獲取所有的鏈接。并依次去請求。然后調用detail_page來處理,得到我們想要的東西。

  • @config(priority=2)priority表示爬取的優先級,沒有設置默認為0,數字越大,可優先調用。

crawl的其他參數:

  • exetime:表示該任務一個小時候執行

  • self.crawl('http://maoyan.com/board/4', callback=self.detail_page,exetime=time.time()+60*60)

  • retries:可以設置重復次數,默認為3

  • auto_recrawl:設置為True時,當任務過期,即age的時間到了之后,再次執行。

  • method:即HTTP的請求方式默認為get

  • params:以字典的形式添加get的請求參數

  • self.crawl('http://maoyan.com/board/4', callback=self.detail_page,params={'a':'123','b':'456'})

  • data:post的表單數據,同樣是以字典的形式

  • files:上傳文件

  • self.crawl('http://maoyan.com/board/4', callback=self.detail_page,method='post',files={filename:'xxx'})

  • user_agent:即User-Agent

  • headers:即請求頭信息

  • cookies:字典形式

  • connect_timeout:初始化的最長等待時間,默認20秒

  • timeout:抓取頁面的最長等待時間

  • proxy:爬取時的代理,字典形式

  • fetch_type:設置成js即可看到javascript渲染的頁面,需要安裝Phantomjs

  • js_script:同樣,也可以執行自己寫的js腳本。如:

  • self.crawl('http://maoyan.com/board/4', callback=self.detail_page,js_script='''

    function(){

    alert('123')

    }

    ''')

  • js_run_at:和上面運行js腳本一起使用,可以設置運行腳本的位置在開頭還是結尾

  • load_images:在加載javascript時,是否加載圖片,默認為否

  • save:在不同方法之間傳遞參數:

    def on_start(self):

    self.crawl('http://maoyan.com/board/4', callback=self.index_page,save={'a':'1'})

    def index_page(self,response):

    return response.save['a']

3、保存之后的項目是這樣的

python pyspider的使用方法

status表示狀態:

  • TODO:表示項目剛剛被創建的狀態

  • STOP:表示停止

  • CHECKING:正在運行的項目被修改的狀態

  • DEBUG/RUNNING:都是運行,DEBUG可以說是測試版本。

  • PAUSE:出現多次錯誤。

如何刪除項目?

將group修改成delete,staus修改成STOP,24小時后系統自動刪除

actions:

run表示運行

active tasks 查看請求

results 查看結果

tate/burst:

1/3表示1秒發送一個請求,3個進程

progress:表示爬取的進度。

到此,關于“python pyspider的使用方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

达日县| 临清市| 弋阳县| 赤峰市| 南平市| 盐池县| 乳源| 萨嘎县| 普定县| 东明县| 鄂尔多斯市| 扶沟县| 舟山市| 天柱县| 台安县| 哈巴河县| 西充县| 陵川县| 莫力| 广昌县| 巫山县| 潞城市| 惠安县| 岐山县| 玛纳斯县| 扶余县| 万山特区| 共和县| 金川县| 双桥区| 广南县| 徐闻县| 洪江市| 登封市| 漳平市| 怀仁县| 辽中县| 墨脱县| 星子县| 五原县| 巫山县|