如何使用 xpath 从具有相同 class 名称的多个 div 中提取链接
how to extract links from multiple divs with the same class name with xpath
我正在做一个 selenium 项目。我有一个包含多个 divs
且具有相同 class 名称的网页,例如这个
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
每个div里面是以下内容
<div class="usr_blk hid">
<div class="image_info">
<table>
<tbody>
<tr>
<td>
<a href="the link I want to scrape">Link</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
我想从每个 div
中的 a tag
中提取 link
。这是我到目前为止尝试过的
list_xpath = "//div[@class='usr_blk hid']//div[@class='image_info']//a"
list_raw = driver.find_elements_by_xpath(list_xpath)
lst = [link.get_attribute('href') for link in list_raw]
但这会产生一个空列表。我不确定我做错了什么。
提前致谢
由于公司政策,我无法与您共享网站 link。
尝试使用 WebDriverWait
。
.visibility_of_all_elements_located
return 网络元素列表:
wait = WebDriverWait(driver, 20)
list_raw = wait.until(EC.visibility_of_all_elements_located((By.XPATH, 'your_xpath')))
导入:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
我正在做一个 selenium 项目。我有一个包含多个 divs
且具有相同 class 名称的网页,例如这个
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
<div class="usr_blk hid">...</div>
每个div里面是以下内容
<div class="usr_blk hid">
<div class="image_info">
<table>
<tbody>
<tr>
<td>
<a href="the link I want to scrape">Link</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
我想从每个 div
中的 a tag
中提取 link
。这是我到目前为止尝试过的
list_xpath = "//div[@class='usr_blk hid']//div[@class='image_info']//a"
list_raw = driver.find_elements_by_xpath(list_xpath)
lst = [link.get_attribute('href') for link in list_raw]
但这会产生一个空列表。我不确定我做错了什么。
提前致谢
由于公司政策,我无法与您共享网站 link。
尝试使用 WebDriverWait
。
.visibility_of_all_elements_located
return 网络元素列表:
wait = WebDriverWait(driver, 20)
list_raw = wait.until(EC.visibility_of_all_elements_located((By.XPATH, 'your_xpath')))
导入:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC