嗨,我不喜歡 API,它很無聊且難以使用,所以我使用 selenium 從 artstation.com 將影像下載到我的計算機我使用這個腳本:
artist = random.choice(["haiyu","cgnox"])
driver.get(f"https://www.artstation.com/{artist}")
time.sleep(4)
image = driver.find_element(By.XPATH,"/html/body/div[3]/div[2]/div/div/div[1]/auto-scrollable-to-top-on-location-change/user-projects[1]/div/div/div[1]/a/div")
image = image.find_element(By.XPATH,"/html/body/div[3]/div[3]/div/div/div[1]/auto-scrollable-to-top-on-location-change/user-projects[1]/div")
print(image)
但總是這個錯誤硒把我:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element:
/html/body/div[3]/div[3]/div/div/div[1]/auto-scrollable-to-top-on-location-change/user-projects[1]/div
Stacktrace:
WebDriverError@chrome://remote/content/shared/webdriver/Errors.jsm:183:5
NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.jsm:395:5
element.find/</<@chrome://remote/content/marionette/element.js:300:16
我不知道問題出在哪里,因為我從瀏覽器中復制了一個元素順便說一句,我真正想要的是在畫廊類中選擇一個 src 。
uj5u.com熱心網友回復:
似乎 xpath 選擇方式不正確,我在串列中使用關鍵字作為 for 回圈。現在它作業正常。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
artists = ["haiyu","cgnox"]
for artist in artists:
url=f"https://www.artstation.com/{artist}"
print(url)
driver.get(url)
driver.maximize_window()
time.sleep(5)
image=[im.get_attribute('src')for im in driver.find_elements(By.XPATH,'//*[@]/a/div/div/img')]
print(image)
輸出:
['https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595', 'https://cdna.artstation.com/p/users/avatars/000/023/520/medium/a627c2c5e1ba583e0243be0e2d8abfbf.jpg?1647858595',
...很快
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/468304.html
下一篇:從webTable列印特定列值
