gpt4 book ai didi

python - Scraper 无法从网站中提取标题

转载 作者:太空宇宙 更新时间:2023-11-04 02:44:47 30 4
gpt4 key购买 nike

我用 python 结合 Selenium 编写了一个脚本,以提取 finance.yahoo 网站左侧栏中显示的不同新闻的标题。我已经使用 css 选择器来获取内容。但是,该脚本既没有给出任何结果也没有抛出任何错误。我无法弄清楚我犯的错误。希望有人会看看它。提前致谢。

这是我的脚本:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("https://finance.yahoo.com/")
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "u.StretchedBox")))
for item in driver.find_elements_by_css_selector("u.StretchedBox span"):
print(item.text)
driver.quit()

标题所在的元素:

<h3 class="M(0)" data-reactid="128"><a rel="nofollow noopener noreferrer" class="Fw(b) Fz(20px) Lh(23px) LineClamp(2,46px) Fz(17px)--sm1024 Lh(19px)--sm1024 LineClamp(2,38px)--sm1024 Td(n) C(#0078ff):h C(#000)" target="_blank" href="https://beap.gemini.yahoo.com/mbclk?bv=1.0.0&amp;es=bVwDtPMGIS8NDKqncZWZBjLsQQHm58Z9cLJuMqC6LadDlYfVCoy.d3GqO599EPAiYnsxB0SB8aRURPve9Q8mOEjH.NrcVcVDhldut.C_9Vn16XER1q1G07a48FMQ_.sv9GCyVx7zcj1kBtWPysaYzQqboJWgUo5DRRHbAnejwVtYRPHJTEptil92tx_ccJZ9FnxE8L3tfDuS0Q3l5ftVhamTOon_nzuvtvqqBwD7X0T.7Z3wZBgtH93gM1xImZ0hdFUzsuQPDAjZWs1KdH0YsXIf3uLrmcJFoI9leh8KRljnIPC.RdhOF6OYcJfHtDks85nSIgfOsMyUr1wEhMA2Qa2htpEg5w.P4UIXeoldjzJ_NsUrtXqEFIJNKoaeq_FNiQ9wcI16utKO87167zkfSPzVY09d3pVLZg20V7tqTThOkG_IakPnmlOriJKnufsBWj1wp.6Q4PasAt2g4Y1yw9U71FIfG2dDwpryRKDWrUBfTvjwwItlSyXyvWvIYUyXXxR74qWcIEC3KAvVN7.iqSckV_EssVM8ytp5HiN4iTACpEmc96rpdNEqHYpRotwze8NF5cDubsZbW58Hauq_aO.DbhZJ7TbBDx5vZK_M%26lp=https%3A%2F%2Fin.search.yahoo.com%2Fsearch%3Fp%3Dcheap%2Bairfare%2Bdomestic%26fr%3Dstrm-tts-thg%26.tsrc%3Dstrm-tts-thg%26type%3Dcheapairfaredomestic-in" data-reactid="129">


<u class="StretchedBox" data-reactid="130"></u>

<span data-reactid="131">The Cheapest Domestic Airfare Rates</span></a></h3>

最佳答案

您既没有得到错误也没有得到结果,因为:

  • find_elements_...() 方法旨在返回一个列表。如果您的选择器不匹配任何元素,您将不会收到错误,只是一个空列表。此外,如果尝试遍历空列表,您也不会出错
  • 您的 CSS 选择器应该匹配 span,它是 u 的后代,具有属性 class="StretchedBox",但实际上需要 span 不是后裔,而是 sibling

尝试使用下面的代码:

for item in driver.find_elements_by_css_selector("u.StretchedBox+span"):
print(item.text)

关于python - Scraper 无法从网站中提取标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45433476/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com