天天看點

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

因為在Excel裡面難以實作自動登入

今天介紹一種用PowerQuery爬取生意參謀資料的方法,隻作學習用,拓展一下思維,切忌大量爬取生意參謀資料,以免被封!

需要用到M語言的幾個函數:

Json.Document() 用來解析Json代碼

Web.Contents(url,[Headers=headers,Query=query]) 用來擷取頁面資料

首先找到想要爬取的資料,此文以爬取生意參謀-首頁-整體看闆的資料為例。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

想要爬取資料,首先要找到資料在哪裡。

滑鼠右擊網頁任意位置,選擇“審查元素,或者”按F12健。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

點選”Network”,然後點選”XHR”,資料就藏在左側的檔案中,可以依次點選檢視。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

發現資料在getTrend.json這個檔案下,在Preview标簽中可以看到我們要爬的資料。

接下來我們需要擷取3部分内容,URL,Headers,Query。點選Headers标簽。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

标紅的部分是我們需要的内容(Headers部分從cookie開始複制,前面部分不需要),為便于編輯,可以把這3部分内容分别複制粘貼到記事本。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

上圖對代碼的含義做了簡單說明。接下來需要将3段内容進行簡單的處理,以便PowerQuery能夠正确識别。

先把輸入法切換到英文狀态。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

url部分用“”引起來。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

Headers部分,冒号左側的内容用引号引起來,左邊加上井号;冒号右側的内容用引号引起來,冒号替換成等于号;cookie、referer和user-agent這3段之間的換行符删掉,然後用逗号隔開;最後把整體用[ ]括起來。

這段沒看懂沒關系,下面再講一遍。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

冒号兩端用引起來

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

左邊加井号

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

冒号換成等于号

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

删掉換行符,用逗号隔開。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

整體用方括号括起來

3部分内容加工完畢,接下來打開Excel。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

點選“資料“頁籤-”建立查詢“-”從其他源“-“空白查詢”

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

此時打開了查詢編輯器(PowerQuery),現在需要一個自動生成時間戳的列。點選“進階編輯器”

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

打開了進階編輯器,将等号右邊的内容替換成以下内容:

Number.IntegerDivide(Duration.TotalSeconds(DateTime.LocalNow()-

#datetime(1970,1,1,8,0,0)),1)

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

點選“已完成”按鈕。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

出現了時間戳的字段,點選“到表”按鈕。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

變成了表格形式,将列名重命名成“時間戳”

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

單擊列名左側圖示,将字段類型設定成文本。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

在url和query代碼中,需要把包含時間戳的字段進行替換,以識别成對應的單元格。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态
python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

中括号兩邊用&連接配接,外面需要被引号引起來。

接下來最關鍵的一步,把要爬取的資料解析出來。添加自定義列。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

在自定義列公式中輸入

Json.Document(Web.Contents(url,[Headers=headers,Query=query]))

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

先不要着急點确定,需要把url,headers,query這3個單詞替換成上文整理好的3段對應代碼。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

然後點選“确定”按鈕。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

出現警告,不必擔心,點選“繼續”。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

在彈出的隐私級别視窗中,點選右側下拉箭頭,選擇“公共”,點選“儲存”。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

解析出了Record字段。點選右邊的雙向箭頭圖示,點選“确定”按鈕。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

繼續點選雙向箭頭圖示,點選“确定”按鈕。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

繼續點選雙向箭頭圖示,點選“确定”按鈕。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

滑鼠右擊Record這一列的列名,選擇“删除其他列”。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

點選雙向箭頭圖示,可以把使用原始列名作為字首前面的勾去掉,點選“确定”按鈕。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

表格變成了這種形式,此時不能直接将資料展開,需要改變一下形式,将List字段變成一列。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

将3列選中(先點選第一列列名,選中第一列,按住Shift健,再選中最後一列),點選“轉換”标簽中

的“逆透視列”按鈕,進行逆透視。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

變成這種形式,然後點選雙向箭頭按鈕。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

點選“擴充到新行”。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

得到了我們想要的資料。

文章到此結束。

本文重點在于解析的過程,提供一種爬蟲的思路,後續資料清洗和整理過程不再贅述。

本文隻爬取了支付金額,想同時爬取更多資料,可以在indexCode=payAmt後面添加其他名額代碼即可,如indexCode=payAmt,uv即可同時爬取支付金額和訪客數。

python 爬取生意參謀資料_用Excel實作生意參謀爬蟲,僞裝登陸狀态

最後提醒:切忌大量爬取生意參謀資料,以免被封!切記!切記!