395

本周目標
學習WebCrawler基本用法與應用
任務
- 如何訪問網站加入瀏覽器資訊並取得網站資料
- 使用Beautifulsoup抓取網站標題
- 加入cookie語法
- 使用迴圈抓取多頁資料
- 練習AJAX網頁-KKDAY
- 練習AJAX網頁-Medium
專案練習
目標
抓取KKDAY首頁標題

發送請求取得網站文字資料
import urllib.request as req
url="https://www.kkday.com/zh-tw/home/ajax_get_homepage_setting?csrf_token_name=0e2694a80a182eaccdfe363b65da5ecb"
request=req.Request(url, headers={
"cookie":"_ga_RJJY5WQFKP=GS1.1.1732118298.1.1.1732118539.60.0.0",
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
})
with req.urlopen(request) as response:
info=response.read().decode("utf-8")
print(info)
出現錯誤
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Missing Subject Key Identifier (_ssl.c:1020)>
出現SSL驗證問題,網路搜尋參考這篇,修改程式碼為
import ssl
import urllib.request as req
ssl._create_default_https_context = ssl._create_unverified_context
url="https://www.kkday.com/zh-tw/home/ajax_get_homepage_setting?csrf_token_name=0e2694a80a182eaccdfe363b65da5ecb"
request=req.Request(url, headers={
"cookie":"_ga_RJJY5WQFKP=GS1.1.1732118298.1.1.1732118539.60.0.0",
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"
})
with req.urlopen(request) as response:
info=response.read().decode("utf-8")
print(info)
可成功印出資料,最後一行可以註解掉
解析json資料,抓取文章標題
import json
info=json.loads(info)
posts=info["data"]["top_products"]["prod_list"]
for post in posts:
print(post["name"])
Output
SHIBUYA SKY 展望台電子門票|即買即用
東京迪士尼度假區門票 Tokyo Disney Resort
台北展覽|草間彌生的「軌跡」與「奇跡」——W Collection & More 1951-2005
【新加坡出發】 迪士尼郵輪 | 迪士尼探險號(Disney Adventure)|3、4 晚行程
東京地鐵一日券/二日券/三日券|Tokyo Subway Ticket
韓國釜山通行證 VISIT BUSAN PASS
大阪周遊卡一日券・二日券 OSAKA AMAZING PASS 電子票
東京交通套票|京成電鐵 Skyliner 車票+東京地鐵 24 / 48 / 72 小時乘車券
日本環球影城門票 Universal Studios Japan|日本大阪 (官方授權)
韓國釜山|海雲台藍線公園海岸列車・天空膠囊列車票