【學習】網路爬蟲 Web Crawler

Young Tsai
Young
Published in
3 min readFeb 29, 2020

Ref

Note: Basic crawling

先備知識

原則:模仿真人用戶

網頁格式:HTML

  • 認識標籤 <xxx>

工具:BeautifulSoup

pip install beautifulsoup4

實作 Step1: 先觀察網址,想要抓的是原始碼

這樣做會被擋

  • 原因:
  1. 看 browser > console > network
  2. 我們是正常使用者會在 request headers,會發現一般使用者會發送很多資訊,其中一個最重要的是 user-agent
  • 解法:
  1. 建立 request 物件
  2. 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"

Note: multi-page

--

--