亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 請求 Cookie 問題(網頁抓?。?/h1>

我目前正在編寫一個網絡爬蟲,為我的 Python Flask 服務器提供數據。我的目標是將 POST 請求發送到服務器并檢索 JSON。我的 Flask API 目前托管在運行 Linux 的 Heroku dyno 上。不久前,服務器添加了 cookie 驗證,這意味著我必須使用 cookie 發送 POST 請求。然而,服務器最近還添加了某種 IP 匹配,這意味著我無法在 Windows 計算機上為 Heroku 服務器使用相同的 cookie 字符串。這是我在兩臺機器上運行的內容:import requestsurl = "https://coursebook.utdallas.edu/clips/clip-coursebook.zog" # POST endpointpayload = "action=search&s%5B%5D=ecs+3390&s%5B%5D=term_20f" # "ecs 3390" is the queryheaders = {  'Connection': 'keep-alive',  'Accept': '*/*',  'DNT': '1',  'X-Requested-With': 'XMLHttpRequest',  'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36',  'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',  'Origin': 'https://coursebook.utdallas.edu',  'Sec-Fetch-Site': 'same-origin',  'Sec-Fetch-Mode': 'cors',  'Sec-Fetch-Dest': 'empty',  'Referer': 'https://coursebook.utdallas.edu/search',  'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6',  'Cookie': 'PTGSESSID=052a6577047da9c404825cc393c56445'}response = requests.request("POST", url, headers=headers, data = payload)print(response.text.encode('utf8'))在我的 Windows 機器上,我收到的響應很好;但是,當我使用相同的代碼在 MacOS 上運行它時,它會返回空白響應,因為 cookie 不匹配(您可以使用相同的代碼嘗試);如果我隨后在 Mac 上訪問該網站并通過正常方式發送請求手動獲取 cookie 字符串,并將其替換為 Python 代碼,那么它現在可以在 Mac 上運行。但是,這需要我實際打開瀏覽器,轉到 URL,然后單擊按鈕發送 POST 請求,然后從開發人員控制臺獲取 cookie 字符串。這在 Heroku dynos 上顯然是不可能的,這意味著我已經從我的樹莓派運行這個服務器有一段時間了。我嘗試獲取登陸頁面(https://coursebook.utdallas.edu/search),我可以在其中發送 GET 請求并從標頭獲取 SET-COOKIES,但該 cookie 字符串似乎不起作用,這是奇怪的。我很確定這應該非常簡單,因為在網站上發送請求似乎一點也不困難。對于這么長的帖子表示歉意,但如果您有任何想法,請告訴我!我的樹莓派感謝你們終于能夠關閉了。
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

了解更多

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號