<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          pyspider爬取王者榮耀數(shù)據(jù)(下)

          共 1240字,需瀏覽 3分鐘

           ·

          2019-12-30 23:21

          咪哥雜談

          8b7a8ab3a4bd735e47e150f2581c2047.webp

          本篇閱讀時間約為 4 分鐘。


          1

          前言


          本篇來繼續(xù)完成數(shù)據(jù)的爬取。離上周文章已經(jīng)過了一星期了,忘記的可以回顧下:《pyspider爬取王者榮耀數(shù)據(jù)(上)


          上篇文章中寫到的,無非就是頭像圖片的懶加載是個小困難點,其余部分,操作起來使用網(wǎng)頁自帶的 css 選擇器很好選擇。


          2

          pyspider爬取數(shù)據(jù)


          1. 完善上周的代碼


          右側(cè)是完善的代碼,將具體的目標(biāo)爬取了下來,并且可以看到左側(cè)上方已經(jīng)輸出了響應(yīng)的內(nèi)容。


          寫完代碼后,別忘了點擊右上方的 save 按鈕。(具體代碼文末有獲取方式)


          9f16370bd3570d279575523928a0d2ca.webp


          2. pyspider啟動爬取


          寫好了代碼后,如何去啟動此爬蟲呢?


          首先回到配置任務(wù)的界面,畫紅線是我現(xiàn)在編寫的任務(wù):


          11d1e7c9a6ee884dbd00057d6ae1c97a.webp

          可以看到有個 status 欄,你需要將此狀態(tài)換成 debug 或者 run 才行。


          f7985204cb5c15f804af9edfe9102c6d.webp

          點擊 run ,即可運行,同時progress的進度條也會變顏色:


          49b3c5461baea0869889b2aa56df5702.webp


          3. 獲取數(shù)據(jù)


          pyspider的數(shù)據(jù)落地,也很好的幫我們實現(xiàn)了,只需要點擊 results ,便可以看到,目前有三種不同的方式,由于本次數(shù)據(jù)沒有多大的量,所以直接用 csv 下載即可。


          b2bdb4b47b7a9a0e07e1115be56b1083.webp


          對于一些字段來說,我在程序中將他們封裝成了 dict 的形式,所以 csv 中有些列是以字典的內(nèi)容存在的,我想要的是最后以 excel 的形式展示,所以這里自己寫個程序處理一下。(后面寫篇 excel 單獨處理的文章)


          4. 關(guān)于數(shù)據(jù)落地于數(shù)據(jù)庫中


          如果當(dāng)你的數(shù)據(jù)量異常大的時候,那么肯定不能使用框架提供的 csv 等來存儲數(shù)據(jù)了。
          此時的做法,引入相應(yīng)的數(shù)據(jù)庫即可,以 mysql 為例。下面提供一個編程的思路,無代碼。
          在 pyspider?提供的?Handler 類中,可以自行實現(xiàn)一個?__init__ 方法(學(xué)過面向?qū)ο蟮耐瑢W(xué)應(yīng)該不陌生),在此方法中,對連接 mysql 數(shù)據(jù)庫的操作進行初始化,生成一個實例對象變量 db
          這樣一來,在 detail_page 函數(shù)中,我們便可以用 self.db 的方式來對 mysql 實例進行入庫操作。

          3

          總結(jié)


          pyspider爬取的入門教程,到此結(jié)束。
          在此次爬取中,圖片的懶加載可以注意下,找到對應(yīng)js即可。
          對比一下用框架來爬取數(shù)據(jù),和我們自己寫代碼的區(qū)別:


          當(dāng)我們自己寫爬蟲時,你需要清晰地知道自己的爬取目標(biāo)是什么,以此來規(guī)劃自己的爬取流程,根據(jù)流程,一步步定義出具體的函數(shù)。同時,你還需要自己構(gòu)造對應(yīng)的請求函數(shù),比如利用 requests 模擬請求等。


          當(dāng)我們使用框架時,爬取流程的結(jié)構(gòu)代碼,框架來實現(xiàn),不用我們自己去寫,請求服務(wù)端的函數(shù),框架幫我們實現(xiàn),我們只需要將自己的注意力放在如何爬取目標(biāo)即可,數(shù)據(jù)落地同理。


          有想要看 pyspider 源碼的同學(xué),后臺回復(fù)?pyspider 即可獲得。




          ▼往期精彩回顧▼用Python發(fā)免費短信的正確姿勢李笑來:自學(xué)是門手藝(開源11k star書籍推薦)
          硬核!用Python為你的父母送上每日天氣提醒!



          9f6d57fb317dbc4a4c5a7c3c29d43d8a.webp你點的每個在看,我都認真當(dāng)成了喜歡


          瀏覽 34
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜夜夜久久久 | 韩国一级黄色毛片 | 黄色成人视频网站在线观看 | Chinese国产人妖TS | 淫色淫香视频网站 |