1 回答

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
首先值得理解為什么您不能以requests
您正在執(zhí)行的方式檢索此數(shù)據(jù),以及您如何能夠做到這一點(diǎn)。
requests
工作流程相當(dāng)簡單 - 該.get()
函數(shù)向服務(wù)器發(fā)送 HTTP 請求,請求有關(guān)頁面的相關(guān)資源。然后,服務(wù)器回復(fù)組成頁面的相關(guān) HTML、CSS 和 Javascript。與許多服務(wù)器一樣,該服務(wù)器不會(huì)回復(fù)整個(gè)頁面,而是使用服務(wù)器響應(yīng)客戶端的 Javascript,進(jìn)一步將更多信息加載到頁面中。當(dāng)您加載網(wǎng)站并且您在嘗試從中請求信息的框架內(nèi)看到“正在加載”符號(hào)時(shí),這一點(diǎn)在視覺上是顯而易見的,但當(dāng)您在Inspect Element 的Network選項(xiàng)卡中進(jìn)行快速分析時(shí),這一點(diǎn)會(huì)變得更加明顯。
在大約 1,500 毫秒到 2,500 毫秒時(shí),我的瀏覽器向 API 端點(diǎn)發(fā)送一個(gè)新請求,該請求似乎提取了您所尋求的相關(guān)信息(我只是在進(jìn)一步挖掘后才知道這一點(diǎn) - 不是一些瘋狂的直覺)。與http://example.com進(jìn)行比較,您可以看到一個(gè)簡單的 HTML 和 CSS 網(wǎng)站如何僅回復(fù)初始GET
數(shù)據(jù):
要提取您正在查找的信息,您必須查看“網(wǎng)絡(luò)”選項(xiàng)卡并查看瀏覽器如何從服務(wù)器提取數(shù)據(jù)。對單詞進(jìn)行快速“查找”,Boluspor
我們得到以下結(jié)果:
現(xiàn)在我們知道API 請求在哪里requests,然后我們可以查詢它以獲取相關(guān)信息。我建議首先單擊實(shí)際結(jié)果來源的 URL ,然后選擇“復(fù)制為提取”,您將得到以下內(nèi)容:
fetch("https://bulten.nesine.com/api/bulten/getprebultenfull", {
? "headers": {
? ? "accept": "application/json, text/javascript, */*; q=0.01",
? ? "accept-language": "en-US,en;q=0.9",
? ? "authorization": "Basic RDQ3MDc4RDMtNjcwQi00OUJBLTgxNUYtM0IyMjI2MTM1MTZCOkI4MzJCQjZGLTQwMjgtNDIwNS05NjFELTg1N0QxRTZEOTk0OA==",
? ? "cache-control": "no-cache",
? ? "content-type": "application/json; charset=utf-8",
? ? "pragma": "no-cache",
? ? "sec-fetch-dest": "empty",
? ? "sec-fetch-mode": "cors",
? ? "sec-fetch-site": "same-site"
? },
? "referrer": "https://www.nesine.com/",
? "referrerPolicy": "strict-origin-when-cross-origin",
? "body": null,
? "method": "GET",
? "mode": "cors",
? "credentials": "include"
});
僅上述內(nèi)容似乎并不表明請求中發(fā)生了任何特殊情況(例如標(biāo)頭、參數(shù)等),因此單獨(dú)訪問端點(diǎn)應(yīng)該可以工作 - 情況就是這樣:
https://bulten.nesine.com/api/bulten/getprebultenfull
然后,您可以requests
抓取該頁面,通過json
模塊加載它,并開始組織數(shù)據(jù)。
添加回答
舉報(bào)