嗨,伙计们,我试图使一个脚本,将循环通过稀有工具上的所有项目,逐个点击div,然后让我的项目细节。然而,由于某种原因,我的脚本不做任何事情....我也没有得到任何错误,只是它没有点击div出于某种原因。所有div的类名都是w-72,如下图
所示。<div class="flex flex-row flex-wrap justify-center">
<div class="mb-4 ml-4 overflow-hidden border border-gray-300 rounded-lg shadow-md bgCard dark:border-gray-800">
<div class="w-72">
<a href="/garagexyz-genesis" class="">
<div class="relative w-full overflow-hidden" style="height: 220px;">
<!---->
<img src="https://projects.b-cdn.net/garagexyz-genesis/header.jpg?height=220" class="object-cover object-center w-full h-full">
<div class="flex flex-row mt-2"><div class="p-2 ml-2">
<div class="font-bold text-pink-600 dark:text-gray-300">
GarageXYZ Genesis 500
</div>
代码
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.maximize_window()
index=0
driver.get("https://rarity.tools/")
while True:
divs = driver.find_elements(By.CLASS_NAME, 'w-72')
print(divs)
try:
divs[index].click()
except IndexError:
break # no more elements, exit the loop
# get project info
# ...
driver.back()
index += 1
您可以简单地遍历找到的元素,然后通过访问子a
标记并获得其href
属性来提取链接。
为了避免陈旧的元素,你可以将链接放在一个列表中,并单独打开它们
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://rarity.tools/")
links = [e.find_element(By.XPATH, ".//a").get_attribute("href") for e in driver.find_elements(By.CLASS_NAME, 'w-72')]
for l in links:
driver.get(l)