首頁  >  文章  >  後端開發  >  透過curl儲存的cookie如何設定過期時間?

透過curl儲存的cookie如何設定過期時間?

WBOY
WBOY原創
2016-08-04 09:19:082336瀏覽

透過模擬登入儲存cookie,然後到後台頁面不斷抓取某網站上的訂單資料。
現在有兩個問題

  • 該網站cookie會在10分鐘後過期,過期後需重新登入

  • 該網站的訂單資料禁止頻繁查詢

現在要完成這樣的功能:

  • 從模擬登入後開始,不斷地自動抓取訂單資料

  • 當該cookie過期時自動傳送訊息到管理員微信,提醒管理員重新登入。

那麼,如何在模擬登入時,設定已儲存的cookie過期時間?以及如何設定每隔固定的時間去執行一次抓取資料操作?
因為要對這些資料做處理,有沒有辦法在本地測試中即可完成這些操作?

回覆內容:

透過模擬登入儲存cookie,然後到後台頁面不斷抓取某網站上的訂單資料。
現在有兩個問題

  • 該網站cookie會在10分鐘後過期,過期後需重新登入

  • 該網站的訂單資料禁止頻繁查詢

現在要完成這樣的功能:

  • 從模擬登入後開始,不斷地自動抓取訂單資料

  • 當該cookie過期時自動傳送訊息到管理員微信,提醒管理員重新登入。

那麼,如何在模擬登入時,設定已儲存的cookie過期時間?以及如何設定每隔固定的時間去執行一次抓取資料操作?
因為要對這些資料做處理,有沒有辦法在本地測試中即可完成這些操作?

隔固定時間去執行抓取,可以使用cli模式定時任務。

cookie設定過期時間我覺得沒有必要,你可以在介面失效的前提下重新模擬登入。

1該網站的訂單資料禁止頻繁查詢
curl 支援代理請求,他偵測是否頻繁請求是透過ip來偵測的
2該網站cookie會在10分鐘後過期,過期後需要重新登入(cookie裡面存放了sessionid主要是這個會話id會過期不是cookie)
按照你的這個情景cookie失效有2種:
----1 會話時長炒超過了伺服器配置的會話時長(一般預設30分鐘)
----2用戶退出,伺服器主動銷毀會話sessionid
既然你是要抓數據,那麼帳號應該是你的, 那麼2的可能基本上可以排除了,至於1 如果你用curl代理請求那麼也就不存在1的問題,如果存在你使用定時請求來保持這個會話sessionid即可(另開一個程式每隔15分鐘請求一次來保持會話)

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn