selenium find_element_by_css_selector 用于长 class 名称
selenium find_element_by_css_selector for the long class name
我已经多次尝试使用教程中的 space 的其他指令代码,效果很好。但是,当我刚刚更改 URL 和下面的 class 时,它会报错说
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified
(Session info: chrome=100.0.4896.88)
当我使用教程代码时一切正常。
这是我的代码(我已经解决了一些来自互联网的 chrome 驱动程序问题)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-logging"])
driver = webdriver.Chrome(options=options)
driver.get("https://raritysniper.com/nft-drops-calendar")
time.sleep(1)
link = driver.find_element_by_css_selector(".w-full.h-full.align-middle.object-cover.dark:brightness-80.dark:contrast-103.svelte-f3nlpp").get_attribute("alt")
print(link)
我正在尝试获取每个项目的属性并将它们制作成 csv。
(请参考截图)
Screen shot of HTML that I am trying to extract
如果有人能描述我在代码中遇到的问题,那就太好了。
谢谢!
您正在使用的CSS_SELECTOR
.w-full.h-full.align-middle.object-cover.dark:brightness-80.dark:contrast-103.svelte-f3nlpp
不真正匹配 HTML 中的任何元素。
相反,您应该使用 CSS_SELECTOR
:
div.w-full.h-full.align-middle img:not(.placeholder)
在代码中:
driver.maximize_window()
wait = WebDriverWait(driver, 30)
driver.get("https://raritysniper.com/nft-drops-calendar")
#time.sleep(1)
first_element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.w-full.h-full.align-middle img:not(.placeholder)")))
print(first_element.get_attribute('alt'))
print(first_element.get_attribute('src'))
导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
输出:
NEON PLEXUS
https://media.raritysniper.com/featured/neon-plexus_1648840196045_3.webp
Process finished with exit code 0
我已经多次尝试使用教程中的 space 的其他指令代码,效果很好。但是,当我刚刚更改 URL 和下面的 class 时,它会报错说
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified
(Session info: chrome=100.0.4896.88)
当我使用教程代码时一切正常。
这是我的代码(我已经解决了一些来自互联网的 chrome 驱动程序问题)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-logging"])
driver = webdriver.Chrome(options=options)
driver.get("https://raritysniper.com/nft-drops-calendar")
time.sleep(1)
link = driver.find_element_by_css_selector(".w-full.h-full.align-middle.object-cover.dark:brightness-80.dark:contrast-103.svelte-f3nlpp").get_attribute("alt")
print(link)
我正在尝试获取每个项目的属性并将它们制作成 csv。 (请参考截图)
Screen shot of HTML that I am trying to extract
如果有人能描述我在代码中遇到的问题,那就太好了。
谢谢!
您正在使用的CSS_SELECTOR
.w-full.h-full.align-middle.object-cover.dark:brightness-80.dark:contrast-103.svelte-f3nlpp
不真正匹配 HTML 中的任何元素。
相反,您应该使用 CSS_SELECTOR
:
div.w-full.h-full.align-middle img:not(.placeholder)
在代码中:
driver.maximize_window()
wait = WebDriverWait(driver, 30)
driver.get("https://raritysniper.com/nft-drops-calendar")
#time.sleep(1)
first_element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.w-full.h-full.align-middle img:not(.placeholder)")))
print(first_element.get_attribute('alt'))
print(first_element.get_attribute('src'))
导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
输出:
NEON PLEXUS
https://media.raritysniper.com/featured/neon-plexus_1648840196045_3.webp
Process finished with exit code 0