-
1 # sry74
-
2 # Excel聚焦
從各個網站爬取資料,一直是程式猿的專屬,業餘的至少也得學個Python什麼的,但是小必今天告訴你,Excel也能進行網站資料的抓取。下面小必從大經濟論壇中的最新精彩貼子為例,跟大家一起學習如何抓取網站中多頁資料:
網址:https://bbs.pinggu.org/z_index.php?type=3&page=1
上面截圖的是最新精華帖的第一頁,但是要抓取的是前15頁的內容:
首先觀察每一頁的網址的變化:
第1頁:https://bbs.pinggu.org/z_index.php?type=3&page=1
第2頁:https://bbs.pinggu.org/z_index.php?type=3&page=2
第3頁:https://bbs.pinggu.org/z_index.php?type=3&page=3
從上面的網址中可以看出,每頁的ID就是網址的最後一個數字,那麼根據這個規律,接下來使用Excel來抓取以上的相關的內容。具體步驟如下:
Step-01:新建一個空白的工作表,單擊【資料】-【新建查詢】-【從其他源】-【自網站】,如下圖所示:
Step-02:在新彈出的對話方塊中選擇【高階】,在擴充套件的對話方塊中的【URL】部分輸入網址除頁碼ID之外的內容,在第二個框裡輸入頁碼ID為1,單擊【確定】,如下圖所示:
Step-03:在新彈出的對話方塊中選擇“table0”查詢,然後單擊【編輯】,如下圖所示:
Step-04:在新彈出的對話方塊中,刪除第一列無用的列,然後選中第4列,單點【轉換】-【拆分列】-【按分隔符】,在彈出的對話方塊中選擇【最左側的分隔符】-【特殊符拆分】-【換行】-【確定】,再選中第5列,然後同樣的操作進行拆分,然後修改欄位名稱。如下圖所示:
Step-05:單擊【檢視】-【高階編譯器】,在let前面輸入“(n as number) as table =>”,然後單擊【確定】(構建自定義函式),如下圖所示:
Step-06:在下面的引數框裡任意的數字就可以查詢到任意頁碼的內容,但是不能抓取多頁。如果要一次性抓取多個頁碼,請看下一個步驟。如下圖所示:
Step-07:新建一個新的空查詢,即右鍵單擊【新建查詢】-【其他源】-【空查詢】,然後在彈出的介面中,在編輯欄裡輸入公式:={1..15},回車鍵後生成1至15的列表,最後單擊【到表】。如下圖所示:
Step-08:單擊【新增列】-【呼叫自定義函式】-【功能查詢】裡選擇上面步驟的Table0,最後單擊確定。如下圖所示:
Step-10:得到抓取的相關資料,到此完成抓取,修改列名,關閉並上載。如下圖所示:
抓取結果如下圖:
回覆列表
幾乎不可能,有用的資料(表格性)在網頁上以其網頁結構(有安全措施)的功能來顯示,你可以複製貼上來獲取,但是自動同步的方式獲取不可能。我以前嘗試學生學籍網的在校學生查詢結果連結到我的excel表裡,結果excel不會發現網頁上的有用的資料了,因為那個網頁用賬號密碼來登入,然後查詢來顯示資料(這個資料我可以匯出,但是麻煩的事),而且整個網頁用flash上動態顯示的,所以獲取網頁上的資料是幻想,但是不是絕對不可能,值得可以嘗試不同的方法,不斷的探究。