我是網頁抓取的新手,不是開發人員,也沒有任何 html exp。并試圖在登錄網站后從我的帳戶中提取一些詳細資訊但出現錯誤find_element_by_class_name()
這是我試過的代碼:
from selenium import webdriver
driver = webdriver.Chrome('path/chromedriver.exe')
driver.get("https://www.URL.COM")
# logged into account manually & maneuvered to the page manually
driver.find_element_by_class_name('css-901oao css-cens5h r-1khnkhu r-13awgt0 r-1oke55r r-1enofrn r-1wzrnnt')
錯誤
---------------------------------------------------------------------------
NoSuchElementException Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_14516/1270707966.py in <module>
----> 1 driver.find_element_by_class_name('css-901oao css-cens5h r-1khnkhu r-13awgt0 r-1oke55r r-1enofrn r-1wzrnnt')
C:\ProgramData\Miniconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py in find_element_by_class_name(self, name)
562 element = driver.find_element_by_class_name('foo')
563 """
--> 564 return self.find_element(by=By.CLASS_NAME, value=name)
565
566 def find_elements_by_class_name(self, name):
也試過
driver.find_element_by_css_selector('css-901oao css-cens5h r-1khnkhu r-13awgt0 r-1oke55r r-1enofrn r-1wzrnnt')
從inspect我能夠查看此內容并嘗試提取影像中突出顯示的內容:

uj5u.com熱心網友回復:
類名需要一個單一的類名。當您在這里傳遞多個類名時
css-901oao css-cens5h r-1khnkhu r-13awgt0 r-1oke55r r-1enofrn r-1wzrnnt
它不會作業。
反而
洗掉空格并從中制作一個 CSS 選擇器。
driver.find_element(By.CSS_SELECTOR, ".css-901oao.css-cens5h.r-1khnkhu.r-13awgt0.r-1oke55r.r-1enofrn.r-1wzrnnt")
另外,請記住find_element_by_class_name在最新的硒中已被棄用。你應該改用這個
find_element(By.CLASS_NAME, "class name")
話雖如此,您現在使用的定位器本質上看起來很脆弱。請使用靜態屬性值。
你可以試試這個xpath
//div[starts-with(@class,'css')]//div[@dir='auto' and contains(@style,'-webkit-line-clamp')]
請檢查dev tools(谷歌瀏覽器)我們是否有唯一的條目HTML DOM。
您應該檢查的 xpath :
//div[starts-with(@class,'css')]//div[@dir='auto' and contains(@style,'-webkit-line-clamp')]
檢查步驟:
Press F12 in Chrome- >去element節- >做一個CTRL F- >再貼上xpath看看,如果你需要的element是越來越強調與1/1匹配的節點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/363768.html
上一篇:從下拉選單中選擇
