Shopping Cart

購物車內沒有任何商品。

爬蟲第五步:如何使用python 帶 cookie 去網站?

立即訂閱電子報,掌握最新資訊!

    稱呼

    電子郵件

    以下非必填,但若您願意分享,我們將能推送更精準的內容給您

    投資經驗

    是否為理工科背景、工程師或有寫程式的經驗?

    有興趣的主題
    量化交易台股期貨海外期貨虛擬貨幣美股

    有興趣的量化交易軟體/平台
    不清楚MultiChartsTradingViewPythonXQ

    想透過量化交易達成甚麼目的?
    不確定自動交易選股回測投資績效量化自己的投資方法想找現成的策略套用

    還有什麼想詢問的?

    20241111 1920 400
    20241111 978 258


    什麼是 Cookie?何時需要用它?

    Cookie 是您造訪的網站所建立的檔案。這些檔案透過儲存瀏覽資訊,為您提供更便利的線上體驗。網站可以利用 Cookie 進行以下操作:
    1. 保持登入狀態
    2. 記住您的網站偏好設定
    3. 提供與您所在地相關的內容

    –GOOGLE

    有時候我們需要爬取登入後才能訪問的頁面,這時就需要藉助 cookie 來完成模擬登入和會話的維持了。

    那麼伺服器是如何知道我們已經登錄了呢?當用戶首次發送請求時,伺服器端一般會生成並存儲一小段信息,包含在response數據裡。

    如果這一小段信息存儲在客戶端(瀏覽器或硬碟),我們稱之為cookie。

    Session(會話)

    如果這一小段信息存儲在伺服器端,我們稱之為session(會話)。

    這樣當用戶下次發送請求到不同頁面時,請求自動會帶上cookie,這樣伺服器就知道用戶之前已經登入訪問過了。

    Py 101209161710
    Py 101209161711

    以爬取需要先知道滿 18 歲的 PTT 頁面為範例

    以下就是我們這次的範例目標:

    https://www.ptt.cc/bbs/Gossiping/index.html

    以爬取需要先知道滿 18 歲的 PTT 頁面為範例
    爬取需要先知道滿 18 歲的 PTT 頁面為範例

    但因為在使用python進去 18禁 頁面時,

    是會跳出條件選擇的,所以沒有帶cookie時,是爬不到頁面的哦!

    那麼就直接開始吧!

    先打開第一層的 F12 看一下目前的 cookie:

    在尚未點選滿18歲時的 cookie 長相如下圖。

    使用python 帶 cookie 去網站

    這是點選後進去的長相。

    使用python 帶 cookie 去網站

    所以我們知道就是差在 over18 = 1 這個內容,那就直接把它加進去即可囉!

    首先我們先呼叫基本套件,並把目標網址先設定好:

    import requests
    from bs4 import BeautifulSoup
    url = ‘https://www.ptt.cc/bbs/Gossiping/index.html’

    再來就是把 header 做好,並且將剛剛的 over18 = 1 放進去:

    headers = {
       “cookie”: “over18=1”,
       “User-Agent”: “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36
    (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36″0
    }

    最後就像是一般爬蟲一樣,將對應的丟進去即可囉!

    r = requests.get(url, headers=headers).content
    soup = BeautifulSoup(r, “html.parser”)
    text_titles = soup.find_all(“div”, class_=”title”)

    for title in text_titles:
        if title.a != None:
          print(title.a.string)

    那結果就會如下圖,這就是帶cookie後,相對應爬出來的內容囉!

    使用python 帶 cookie 去網站

    那這篇文大概就介紹到這邊,因為 cookie 的使用方式很多元,

    會需要考量很多種狀況,所以如果各位真的有興趣,

    我再找時間寫其他相關的內容囉!

    那程式碼我附在底下,感謝大家!

    爬蟲程式碼範例

    完整程式碼如下:

    import requests
    from bs4 import BeautifulSoup
    url = ‘https://www.ptt.cc/bbs/Gossiping/index.html’

    headers = {
       “cookie”: “over18=1”,
       “User-Agent”: “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36
    (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36″0
    }
    r = requests.get(url, headers=headers).content
    soup = BeautifulSoup(r, “html.parser”)
    text_titles = soup.find_all(“div”, class_=”title”)

    for title in text_titles:
        if title.a != None:
          print(title.a.string)


    加入LINE社群量化交易討論群」無壓力討論與分享!

    加入Discord 「量化交易討論群」即時獲取實用的資源!

    Write Together 101306261122
    Write Together 101306261121
    RoWay
    RoWay

    多年投資經驗的兩岸三地操盤手,曾任海外資產管理公司交易平台的產品經理、與各外商投資公司合作開發各式交易策略與系統。

    擅長用Python執行資料蒐集、整理、分析與交易;也善於用Multicharts、MetaTrader等系統建構並回測期貨、期權、區塊鏈策略進而完成投資組合管理。

    文章: 28

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *