【问题标题】:I need to get the title for a news article using Selenium我需要使用 Selenium 获取新闻文章的标题
【发布时间】:2018-07-07 16:49:56
【问题描述】:

我正在使用 Selenium webdriver 从 www.cnn.com 获取 html 目前,我可以从 cnn 获取标题,但我想知道是否可以将内容保存到文本文件中,然后搜索要打印的特定标题。

我的python代码:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://www.cnn.com')

content = driver.find_element_by_xpath("html").text

谁能帮帮我?

【问题讨论】:

  • 谷歌是你的朋友:seleniumstutorial.com/…
  • 美汤这个会更好
  • 您考虑过使用 RSS 提要吗?
  • 你能用从 www.cnn.com 获取 html能够获得头条的确切含义更新问题吗? 将内容保存到文本文件中然后搜索特定标题

标签: python selenium web-scraping


【解决方案1】:

如果您从文本文件中读取,Selenium 将无济于事,因为它的 API 使用 webdriver 协议在浏览器上下文中工作。

如果你想将整个 html 内容保存到一个文本文件中然后阅读标题,你可以使用 BeautifulSoup 模块。这是一个例子。

with open("htmlcontent.txt") as f: 
  html_data = f.readlines() 

soup = BeautifulSoup(html_data, "html.parser")

for elem in soup.select("h1"):
    print(elem.get_text()) 

【讨论】:

    【解决方案2】:

    BeautifulSoup 绝对是最适合您的情况。但是如果你想使用 Selenium,你可以遍历标题并使用 Selenium 驱动程序提取它们的文本(而不是直接从文件中提取)。

    查看 CNN 的网站,cd__headline-text 是应用于标题的类名,因此您可以这样获取它们:

    from selenium import webdriver
    
    driver = webdriver.Firefox()
    driver.get('http://www.cnn.com')
    
    for headline in driver.find_elements_by_class_name('cd__headline-text'):
        print(headline.text)
    

    输出:

    亚洲强人采用“假新闻”抨击媒体
    健身追踪应用程序显示远程军事基地的信息
    太平洋渡轮沉没一周后,七人获救,43 人失踪
    ...

    【讨论】:

      猜你喜欢
      • 2022-11-19
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多