我正尝试使用value的xpath变量从这个网站上抓取(在python中)储蓄利率。
我什么都试过了:beautifulsoup,selenium,etree,etc.我已经能够成功地抓取一些其他网站。然而,这个网站和许多其他网站都让我适合。我喜欢一个解决方案,可以抓取信息从几个网站,无论其格式使用xpath变量。
我当前的尝试:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
service = Service(executable_path="/chromedriver")
options = Options()
options.add_argument(' — incognito')
options.headless = True
driver = webdriver.Chrome(service=service, options=options)
url = 'https://www.americanexpress.com/en-us/banking/online-savings/account/'
driver.get(url)
element = driver.find_element(By.XPATH, '//*[@id="hysa-apy-2"]')
print(element.text)
if element.text == "":
print("Error: Element text is empty")
driver.quit()
2条答案
按热度按时间yqlxgs2m1#
利率写在span元素中,所有包含利率的span元素共享相同的
class
heading-6
,但是要记住,结果为每个利率返回两个span元素,每个元素对应一个不同的视口。xpath选择器:
也可以通过
containing text APY
获取元素:但是这个选择器查找DOM中包含单词
APY
的所有span元素。3htmauhk2#
如果发现唯一id,建议优先,如下所示:
find_element(By.ID,'hysa-apy-2')
喜欢@约翰·戈登评论。但有时当元素找到时,文本尚未加载。
使用xpath并添加此逻辑
and text()!=""
导入后: