2017-10-20 32 views
0

屬性我真的不知道如何從data-image-large得到公正的src圖像我得到這個:當我打電話使用<code>soup.select('img[data-image-large]')</code>我不能讓所有的圖像使用美麗的湯和硒

[<img alt="Adidas Originals NMD C2" class="img-responsive" data-image-large="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fbb%2Fc2%2FShoes_1_1-a1b3aed478ffec80ba8c68494053.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=1300&amp;ixlib=php-1.1.0&amp;q=90&amp;w=1000&amp;s=38d17241f278aa174c57ff8ba35b94da" data-index="0" data-zoom-image="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fbb%2Fc2%2FShoes_1_1-a1b3aed478ffec80ba8c68494053.jpg?auto=compress%2Cformat&amp;fm=pjpg&amp;ixlib=php-1.1.0&amp;q=90&amp;s=963ec1279be64e03f4ac2b7f7a9b36d4" itemprop="image" src="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fbb%2Fc2%2FShoes_1_1-a1b3aed478ffec80ba8c68494053.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=832&amp;ixlib=php-1.1.0&amp;q=90&amp;w=640&amp;s=92dea597a56bcf9d38f1f9a5f4d3c590" srcset="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fbb%2Fc2%2FShoes_1_1-a1b3aed478ffec80ba8c68494053.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=1300&amp;ixlib=php-1.1.0&amp;q=90&amp;w=1000&amp;s=38d17241f278aa174c57ff8ba35b94da 2x"/>, <img alt="Adidas Originals NMD C2" class="img-responsive" data-image-large="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2F4e%2F44%2FShoes_1_2-11c2134891612312561d9d8e93f5.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=1300&amp;ixlib=php-1.1.0&amp;q=90&amp;w=1000&amp;s=27df63d14cf5183ccc3d825f6994a232" data-index="1" data-zoom-image="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2F4e%2F44%2FShoes_1_2-11c2134891612312561d9d8e93f5.jpg?auto=compress%2Cformat&amp;fm=pjpg&amp;ixlib=php-1.1.0&amp;q=90&amp;s=20dbba1f381441b6cf1654b8bb03a194" src="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2F4e%2F44%2FShoes_1_2-11c2134891612312561d9d8e93f5.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=832&amp;ixlib=php-1.1.0&amp;q=90&amp;w=640&amp;s=4fb51fcf7948eeb5622fb63c25d6944f" srcset="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2F4e%2F44%2FShoes_1_2-11c2134891612312561d9d8e93f5.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=1300&amp;ixlib=php-1.1.0&amp;q=90&amp;w=1000&amp;s=27df63d14cf5183ccc3d825f6994a232 2x"/>, <img alt="Adidas Originals NMD C2" class="img-responsive" data-image-large="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fa6%2Ff4%2FShoes_1_3-f30adb388e477e7fd0a7bc2d172a.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=1300&amp;ixlib=php-1.1.0&amp;q=90&amp;w=1000&amp;s=505e637d9b5a82bcf0d84a9d335e080c" data-index="2" data-zoom-image="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fa6%2Ff4%2FShoes_1_3-f30adb388e477e7fd0a7bc2d172a.jpg?auto=compress%2Cformat&amp;fm=pjpg&amp;ixlib=php-1.1.0&amp;q=90&amp;s=fb0019b2304ab3f970a03f8ec7faf7fb" src="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fa6%2Ff4%2FShoes_1_3-f30adb388e477e7fd0a7bc2d172a.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=832&amp;ixlib=php-1.1.0&amp;q=90&amp;w=640&amp;s=44ac890d49273e9d382f41e97ec70f3d" srcset="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fa6%2Ff4%2FShoes_1_3-f30adb388e477e7fd0a7bc2d172a.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=1300&amp;ixlib=php-1.1.0&amp;q=90&amp;w=1000&amp;s=505e637d9b5a82bcf0d84a9d335e080c 2x"/>, <img alt="Adidas Originals NMD C2" class="img-responsive" data-image-large="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fef%2F15%2FShoes_1_4-711b1e1627aaeb93e4b60395cc4a.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=1300&amp;ixlib=php-1.1.0&amp;q=90&amp;w=1000&amp;s=335ad8e02f38cf1315fd8d77bb25e773" data-index="3" data-zoom-image="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fef%2F15%2FShoes_1_4-711b1e1627aaeb93e4b60395cc4a.jpg?auto=compress%2Cformat&amp;fm=pjpg&amp;ixlib=php-1.1.0&amp;q=90&amp;s=a1a5b31af43c8ea5e125243dcebc9674" src="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fef%2F15%2FShoes_1_4-711b1e1627aaeb93e4b60395cc4a.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=832&amp;ixlib=php-1.1.0&amp;q=90&amp;w=640&amp;s=ef9389f17a6557b4932a55312eda61a1" srcset="https://hypebeast.imgix.net/http%3A%2F%2Fs3.store.hypebeast.com%2Fmedia%2Fimage%2Fef%2F15%2FShoes_1_4-711b1e1627aaeb93e4b60395cc4a.jpg?auto=compress%2Cformat&amp;fit=max&amp;fm=pjpg&amp;h=1300&amp;ixlib=php-1.1.0&amp;q=90&amp;w=1000&amp;s=335ad8e02f38cf1315fd8d77bb25e773 2x"/>] 

我知道如何使用xpath得到1,然後使用這個命令:driver.find_element_by_xpath('//*[@id="gallery"]/div/div[2]/div/div/ul/li[1]/img但是,我也不知道如何使用硒來獲取它們。

我的腳本:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import requests ; from bs4 import BeautifulSoup 
driver = webdriver.Chrome() 
from selenium.common.exceptions import NoSuchElementException 

#url target 
driver.get("https://hbx.com/categories/sneakers") 

#masuk 
driver.find_element_by_xpath('//*[@id="products-container"]/div[1]').click() 
url = driver.current_url 
soup = BeautifulSoup(requests.get(url).html, "html.parser") 
soup.select('img[data-image-large]') 

#color 
def check_exists_by_xpath(xpath): 
try: 
    driver.find_element_by_xpath('//*[@id="product-form"]/div[1]/div[1]/div/select').text 
except: NoSuchElementException 

#size 
def check_exists_by_xpath(xpath): 
    try: 
     driver.find_element_by_xpath('//*[@id="product-form"]/div[1]/div[2]/div[2]').text 
    except: NoSuchElementException 

#back 
driver.back() 

我想就是從這裏https://hbx.com/brands/adidas-originals/nmd-c2

+1

如果你可以直接從瀏覽器實例中打開的頁面中抓取所有需要的數據,爲什麼要做'requests.get(url)'? – Andersson

+0

請將單獨的問題作爲實際單獨的問題發佈。這並沒有什麼壞處,因爲你只是發帖,每個問題有一個問題。 – Iguananaut

+0

@Andersson我以爲只是開着硒而不能檢測爲人類。沒有它就沒關係了? – Filmar

回答

1

得到所有data-image-large圖像源的。如果你只是想湊所有圖像源,你可以試試下面的代碼:

driver.get(https://hbx.com/brands/adidas-originals/nmd-c2) 
pictures = [picture.get_attribute('data-image-large') for picture in driver.find_elements_by_css_selector('div#gallery li>img.img-responsive')] 

print(pictures) 
+0

對不起。我不清楚我以前想要什麼。我會再次編輯我的帖子。在我使用這個命令'driver.find_element_by_xpath('// * [@ id =「products-container」]/div [1]')後,點擊()'讓我的瀏覽器進入:'https://hbx.com/brands/adidas-originals/nmd-c2' – Filmar

+0

是的。那就對了。我也是這樣做的,但沒有點擊每個圖像,但用'get()'一個接一個地打開它。 – Andersson

+0

感謝您的嘗試!真的非常喜歡!我會等待,也許有人可以得到他們所有人。對於臨時只是讓他們一個接一個。 – Filmar