感谢上一个问题,它是@QHarr和@DebanjanB的帮助,
这个简单易用,源于我是一个初学者。
我需要从webauto.de的这段代码中抓取图像位置,然后点击图库
<li class="slide" style="">
<img class="image" src="https://www.webauto.de/img/vc/de/0/1/2/19482/pan/1735h_1" style="max-width: 640px; max-height: 480px; width: 100%; height: auto; left: 50%; top: 50%; margin-left: -320px; margin-top: -240px;" alt=""></li>
还有一个
find_elements_by_css_selector('.slide > img')
find_elements_by_css_selector('li > img')
find_elements_by_xpath("//li[@class='slide']/img]"
让我留下一个空白列表,而不是地址列表。
第二件事是我需要从hasznaltauto.hu的JS下拉列表中选择一个子组
<select id="hirdetesszemelyautosearch-modell_id" class="form-control hidegroups" name="HirdetesSzemelyautoSearch[modell_id]" data-live-search="false" data-header="Modell" data-krajee-depdrop="depdrop_fdcef640" disabled="disabled">
<optgroup label="FIESTA">
<option value="540" class="opt">FIESTA (1001)</option></optgroup>
我使用了提供给我的东西的逻辑延续,但是它抛出了“元组索引超出范围”
find_element_by_xpath("//select[@id='hirdetesszemelyautosearch-modell_id']/optgroup[@label='{}']/option[contains(text(), '{}')]".format('FIESTA')).click()
答案 0 :(得分:1)
您可以使用CSS选择器来获取所有图像链接。我不确定您所说的地址是什么意思,但是已经使用类选择器在画廊下获取地址。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
d = webdriver.Chrome()
d.get("https://www.webauto.de/site/de/auto-detail/v-id/121078258-1/fahrzeug/FORD-Fiesta-Style-1,3l-44kW-5-Gang-!-Nur-an-Gewerbe/Export-!-/Gebrauchtwagen/Limousine/silber/Benzin/44-KW-60-PS/Wesseling")
elements = WebDriverWait(d,5).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "[src^='https://www.webauto.de/img/']")))
linkList = [element.get_attribute('src') for element in elements]
print(linkList)
print(d.find_element_by_css_selector('.contactdata').text)
#d.quit()
答案 1 :(得分:1)
对于完整尺寸的图像,您需要将其提取到iframe中
iframe = WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.ID, "sb-player")))
driver.switch_to.frame(iframe)
images = driver.find_elements_by_css_selector('.slide > img')