2017-11-18 227 views
-1

我目前正在使用python網絡爬蟲收集在谷歌上搜索到的圖像。我用硒滾動搜索頁面,並用美麗的湯來記錄所有的元素。查找圖像的網址

對於某些圖片,我可以輕鬆找到沒有額外點擊的網址,如「http://www.XXXXX.jpg」。但是對於一些圖片,如果我不點擊它並檢查元素,那麼src部分就像「data:image/jpeg; base 64,/ ...」。通過單擊後檢查縮放的圖像,我將獲得所需的網址。但我不知道如何使用硒點擊圖片。

有沒有什麼辦法讓這類圖片的網址?

+0

參見:[我要如何做X ?](https://meta.stackoverflow.com/questions/253069/whats-the-appropriate-new-current-close-reason-for-how-do-i-do-x)對SO的期望是,用戶提出的問題不僅僅是研究來回答他們自己的問題,還會分享研究,代碼嘗試和結果。這表明你已經花時間去嘗試幫助自己,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案!另請參閱:[問] – JeffC

回答

0

這可能意味着圖像編碼的HTML 的src部分內儲存的圖片,你只需要獲取文本的長行後

data:image/jpeg;base 64,/ 

,並對其進行解碼。

例如

import base64 
b64_data = "here_text" 
imgdata = base64.b64decode(b64_data) 
filename = 'some_image.jpg' # I assume you have a way of picking unique filenames 
with open(filename, 'wb') as f: 
    f.write(imgdata) 

它也可能意味着單擊縮略圖後運行JavaScript,然後點擊元素所有你需要做的就是

driver.find_element_by_css_selector(".classname").click() 
+0

現在它可能只是存儲爲Base 64字符串的縮略圖。當你點擊它時,可能會有javascript在背景中發生,它正在構建實時圖像上的鏈接。 – WombatPM

+0

在這種情況下,您可以使用Selenium點擊元素 – mduiker

+0

@mduiker謝謝各位!點擊方法確實有效。我如何構建一個while循環或for循環來連續點擊所有圖像?而且一旦我點擊了一張圖片,這張圖片的所有元素都會被記錄下來,對吧?我對網頁一無所知......抱歉。 – Yujian