我使用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
任何人都可以帮助我吗?
答案 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人失踪 ...