【學習】網路爬蟲 Web Crawler
Published in
3 min readFeb 29, 2020
Ref
Note: Basic crawling
先備知識
原則:模仿真人用戶
網頁格式:HTML
- 認識標籤 <xxx>
工具:BeautifulSoup
pip install beautifulsoup4
實作 Step1: 先觀察網址,想要抓的是原始碼
這樣做會被擋
- 原因:
- 看 browser > console > network
- 我們是正常使用者會在 request headers,會發現一般使用者會發送很多資訊,其中一個最重要的是 user-agent
- 解法:
- 建立 request 物件
- urlopen 提供物件,而不是網址
實作 Step2: 資料解析
- 找出關鍵字,trace 原始碼
- 使用 beautifulsoup4 ,doc link
import bs4
- 抓 title
- 找出我們想要的資料標籤規則(以文章名為例) by find( )
find只會抓到第一個,那怎麼抓所有的呢?
- 想抓到所有的:by find_all( ),再用 for loop 印出檢視
Note: Cookie
假設我們要爬 ptt 八卦版,用以上的爬蟲,卻無法爬下 → 因為他會有一個確認畫面
原因:
為什麼有些 alert 或是 notification 按過後,下次就不會出現 → Cookie
可以看 console > application >Cookies 就可以看到這個網站放在你的瀏覽器的 cookies
當我們有八卦版給我們的 cookie
可以觀察 request header > cookie 會看到 over18 = 1,這就是我們需要放到 request 的 param
解法:
request 帶上 "cookie" : "over18=1"