發出請求取得網頁內容後,會得到密密麻麻的 HTML,此時便可以讓 BeautifulSoup 來協助解析網頁內容。
Install
1 | pip3 install bs4 |
Web Analytics
寫個簡單的 Web Crawler 去 PTT 西斯版逛逛吧,但因為西斯版有年齡驗證,所以必須利用 Requests.Session()物件去做 post,按下大家在美好童年就已經按過的「我已滿18歲按鈕」,讓 Web Crawler 取得伺服器驗證後就可以在西斯版橫行無阻(嘿嘿)。
從截圖可以看到,url 為 https://www.ptt.cc/ask/over18... 這就是取得驗證的網址,注意 url 後頭的 from=%2Fbbs%2Fsex…在 post 驗證的 payload 要寫入 from 這個 key,表示 post 來自西斯版。
關於 BeautifulSoup 更多細節可參考官方文件,這邊簡單說明,基本上就是把 request 取得的 html 丟給 Soup 去解析,接著可以使用 find(), find_all(), select()等方法來篩選尋找目標數據所在的區塊。
舉例來說,若要讓 Web Crawler 去爬取西斯版的文章標題&連結,觀察網頁原始碼後可以發現目標數據就在 class=r-ent 的區塊裡面。
Code
1 | import requests as rq |
輸出結果: