我目前正在編寫(xiě)一個(gè)網(wǎng)絡(luò)爬蟲(chóng),為我的 Python Flask 服務(wù)器提供數(shù)據(jù)。我的目標(biāo)是將 POST 請(qǐng)求發(fā)送到服務(wù)器并檢索 JSON。我的 Flask API 目前托管在運(yùn)行 Linux 的 Heroku dyno 上。不久前,服務(wù)器添加了 cookie 驗(yàn)證,這意味著我必須使用 cookie 發(fā)送 POST 請(qǐng)求。然而,服務(wù)器最近還添加了某種 IP 匹配,這意味著我無(wú)法在 Windows 計(jì)算機(jī)上為 Heroku 服務(wù)器使用相同的 cookie 字符串。這是我在兩臺(tái)機(jī)器上運(yùn)行的內(nèi)容: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 機(jī)器上,我收到的響應(yīng)很好;但是,當(dāng)我使用相同的代碼在 MacOS 上運(yùn)行它時(shí),它會(huì)返回空白響應(yīng),因?yàn)?cookie 不匹配(您可以使用相同的代碼嘗試);如果我隨后在 Mac 上訪(fǎng)問(wèn)該網(wǎng)站并通過(guò)正常方式發(fā)送請(qǐng)求手動(dòng)獲取 cookie 字符串,并將其替換為 Python 代碼,那么它現(xiàn)在可以在 Mac 上運(yùn)行。但是,這需要我實(shí)際打開(kāi)瀏覽器,轉(zhuǎn)到 URL,然后單擊按鈕發(fā)送 POST 請(qǐng)求,然后從開(kāi)發(fā)人員控制臺(tái)獲取 cookie 字符串。這在 Heroku dynos 上顯然是不可能的,這意味著我已經(jīng)從我的樹(shù)莓派運(yùn)行這個(gè)服務(wù)器有一段時(shí)間了。我嘗試獲取登陸頁(yè)面(https://coursebook.utdallas.edu/search),我可以在其中發(fā)送 GET 請(qǐng)求并從標(biāo)頭獲取 SET-COOKIES,但該 cookie 字符串似乎不起作用,這是奇怪的。我很確定這應(yīng)該非常簡(jiǎn)單,因?yàn)樵诰W(wǎng)站上發(fā)送請(qǐng)求似乎一點(diǎn)也不困難。對(duì)于這么長(zhǎng)的帖子表示歉意,但如果您有任何想法,請(qǐng)告訴我!我的樹(shù)莓派感謝你們終于能夠關(guān)閉了。
Python 請(qǐng)求 Cookie 問(wèn)題(網(wǎng)頁(yè)抓?。?/h1>
小怪獸愛(ài)吃肉
2023-08-08 09:55:26
小怪獸愛(ài)吃肉
2023-08-08 09:55:26