(爬)kkday旅遊資訊並存成csv

 爬取kkday旅遊資訊

今年快到要過了,往年都會安排出國旅行,但疫情問題全世界都有

旅遊上的控管限制,唉....上班備感倦怠,但其實國內也有不錯的景

點,稍微來安排一下一日遊或二日遊也不錯,至少轉換工作倦怠的

心情。

爬取kkday這個旅遊資訊


假設旅遊地我想搜尋台南,觀察網址有一個page和keywordword,page=頁數;keyword=關鍵字,
所以到時一次要爬很多頁可以把這page設成變數,keyword設成字串。

首先觀察網頁的型態,在網頁上按右鍵,再按檢視原始碼,往下拉會發現一堆Unicode編碼
,所以大概知道這是AJAX網頁類型。

接著在頁面任一地方按下右鍵,選擇"檢查",再選擇"Network",並重新整理網頁,試著找出
有用的請求網址,觀察到的如下圖:
選擇列表中的第二個,再選擇"Preview",可以看到資訊都藏在其中,以list的方式存在

以下是程式碼

import requests
from pprint import pprint
import csv

class kkday():
    """
    爬取kkday旅遊票券
    """
    def __init__(selfcityNamepage):
        self.cityName=cityName
        self.page=page
    def getData(self):
        
        result=[]
        if self.cityName:
            for i in range(1,self.page):#要查找的頁數
                url='https://m.kkday.com/zh-tw/product/ajax_get_productlist?page='+str(i)+'&keyword='+\
                    str(self.cityName)+'&sort=rdesc'
                response=requests.get(url)
                activities = response.json()["data"]["productlist"]#轉成json檔
                for activtie in activities:#找出json裡想要存檔的資訊
                    title=activtie["name"]
                    price=activtie["display_price"]
                    date=activtie['earliest_sale_date']
                    star=activtie['rating_count']
                    url=activtie["url"]
                    #以字典的型態加入列表裡
                    result.append({'標題':title, 
                                    '價格(元)':price, 
                                    '日期':date, 
                                    '評價':star, 
                                    '連結':url
                                })
        keys=result[0].keys()#抽取字典裡的key{'key':value}
        #存成csv
        with open('kkday一日遊票券.csv''w'newline=''encoding='utf-8-sig'as f:
            dw=csv.DictWriter(f, keys)
            dw.writeheader()
            dw.writerows(result)

        return result
cityname=input("輸人想查找的城市: ")
page=eval(input("輸入想爬取的頁數:"))      
kkdayR=kkday(cityname, page)
pprint(kkdayR.getData())

下圖是執行的圖片

存成csv打開來看一下有沒有存成功,果然有效率😜,出去玩沒問題了!!





留言

這個網誌中的熱門文章

(爬)微信公眾號上的圖片下載

(爬)康是美門市查詢並轉存csv