我需要使用Selenium获取新闻文章的标题

时间:2018-01-29 02:44:15

标签: python selenium web-scraping

我使用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

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

如果您正在阅读文本文件,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()) 

答案 1 :(得分:0)

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人失踪   ...