第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用來(lái)自 AJAX 網(wǎng)站的 selenium 和 beautifulsoup

使用來(lái)自 AJAX 網(wǎng)站的 selenium 和 beautifulsoup

人到中年有點(diǎn)甜 2021-10-26 16:52:45
我花了很長(zhǎng)時(shí)間嘗試瀏覽 html、javascript、網(wǎng)絡(luò)流量等,并學(xué)習(xí)了很多關(guān)于 javascript、blob、base64 解碼/圖像編碼的知識(shí),但我似乎仍然無(wú)法弄清楚如何提取這些視頻中的圖片來(lái)自本網(wǎng)站:https : //www.jamesallen.com/loose-diamonds/all-diamonds/這是我所知道的:每個(gè)視頻實(shí)際上是一組多達(dá) 512 張圖像,這些圖像是通過(guò)名為 setX.bin(X 是一個(gè)數(shù)字)的文件從服務(wù)器檢索的。然后通過(guò)一個(gè) int 數(shù)組將它們解析為一個(gè) blob 對(duì)象(還有一些 base64,但我忘記了在哪里),以某種方式將其轉(zhuǎn)換為圖像。遵循源代碼非常困難,因?yàn)樗枪室饩帉憺橐獯罄鏃l式代碼的。我怎樣才能有效地提取每顆鉆石的圖像?我的一個(gè)解決方案是:我可以很容易地獲得 setX.bin 文件,如果我只是以某種方式將它們“傳遞”到 javascript 函數(shù)中,那么我應(yīng)該會(huì)很好。我的第二個(gè)解決方案是:手動(dòng)旋轉(zhuǎn)每個(gè)鉆石并從緩存中提取圖像或類似的東西。我想用python來(lái)做到這一點(diǎn)。編輯: 我在 SO 上找到了 javascript,它確實(shí)給出了“SecurityError:操作不安全”。這里是:function exportCanvasAsPNG(id, fileName) {    var canvasElement = document.getElementById(id);    canvasElement.crossOrigin = "anonymous";    var MIME_TYPE = "image/png";    var imgURL = canvasElement.toDataURL(MIME_TYPE);    window.console.log(canvasElement);    var dlLink = document.createElement('a');    dlLink.download = fileName;    dlLink.href = imgURL;    dlLink.dataset.downloadurl = [MIME_TYPE, dlLink.download, dlLink.href].join(':');    document.body.appendChild(dlLink);    dlLink.click();    document.body.removeChild(dlLink);}exportCanvasAsPNG("canvas-key-_w5qzvdqpl",'asdf.png');我從 Firefox 控制臺(tái)運(yùn)行它。當(dāng)我在 python 中運(yùn)行類似的執(zhí)行腳本時(shí),我遇到了同樣的問(wèn)題。我希望能夠?yàn)槊總€(gè)畫(huà)布抓取所有 360 度圖像。Edit2:為了使這個(gè)問(wèn)題更簡(jiǎn)單,我知道如何獲取 setX.bin 文件,但我不知道如何將這組圖像從 bin 轉(zhuǎn)換為 jpg。每個(gè) bin 文件是多個(gè) jpg 文件。
查看完整描述

1 回答

?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

這些.bin文件似乎只包含與一些主要元數(shù)據(jù)連接在一起的 jpeg。您可以簡(jiǎn)單地遍歷文件的字節(jié)以查找 jpeg 文件簽名 ( 0xFFD8) 并切出每個(gè)圖像:


JPEG_MAGIC = b"\xff\xd8"


with open("set0.bin", "rb") as f:

    s = f.read()


i = 0

start_index = s.find(JPEG_MAGIC)


while True:

    end_index = s.find(JPEG_MAGIC, start_index + 1)


    if end_index == -1:

        end_index = len(s)


    with open(f"out{i:03}.jpg", "wb") as out:

        out.write(s[start_index:end_index])


    if end_index == len(s):

        break


    start_index = end_index


    i += 1

結(jié)果:

http://img1.sycdn.imooc.com//6177c20200015ae308860452.jpg

查看完整回答
反對(duì) 回復(fù) 2021-10-26
  • 1 回答
  • 0 關(guān)注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)