无法从div中抓取文本



我试着从div中抓取打印文本,得到如下所示的错误!请帮助

from selenium import webdriver
import pandas as pd
driver = webdriver.Chrome(executable_path= '/Users/leah/Documents/Scrape-Finantials/webdrivers/chromedriver')
driver.get('https://www.dummy-id.com/StockInfo/_ScreenerScan.html?SYMBOLS_PP=25&SYMBOLS_ONLY=on&sort1=MaxVWVP&sort2=None&sort3=None&WN=Lowfloat&MaxFloat=20000000&XN=on&X_NYSE=on&X_ARCA=on')
ticker = driver.find_elements_by_xpath('//body/div[4]/div/div/div/div[1]/div')
len(ticker)
print(ticker.text)
#Try printing ticker and get following error!
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-45-0ca4276d61ba> in <module>
----> 1 print(ticker.text)
AttributeError: 'list' object has no attribute 'text'

调用find_elements_by_xpath()将获得一个元素列表,而不是单个元素。调用len(ticker)是可以的,但是ticker。文本不正确

如果你想打印每个元素,你需要一个循环

ticker = driver.find_elements_by_xpath('//body/div[4]/div/div/div/div[1]/div')
len(ticker)
for elem in ticker:
print(elem.text)

参考:https://selenium-python.readthedocs.io/locating-elements.html

最新更新