从HTML元素复制内容并使用Python3.x导出到文本文件

时间:2017-10-05 14:37:56

标签: html python-3.x copy

我使用python3.x脚本将字符串保存到文本文件中:

nN = "hello"

f = open("file.txt", "w")
f.write(nN)
f.close()

现在我正在尝试从网站解析h2元素的内容(页面抓取工作正常),我在尝试时遇到错误:

nN = driver.find_element_by_id("title")

f = open("file.txt", "w")
f.write(nN)
f.close()

html行是:

<h2 id="title">hello</h2>

错误是:

write()参数必须是str,而不是WebElement

我尝试使用以下内容将nN转换为字符串:

f.write(str(nN))

,新错误是:

语法无效

1 个答案:

答案 0 :(得分:1)

看起来您正在使用Selenium,然后使用webdriver解析html内容?

字符串转换不起作用的原因是因为nN是Selenium / html对象,可能是字典或列表。你可以简单地尝试f.write(nN.text),根据文档,nN的.text版本应该可以工作。

对于解析html的更大问题,我建议使用Beautiful Soup。执行pip3 install BeautifulSoup4然后导入from bs4 import BeautifulSoup。然后作为例子:

with open('file.html','r') as f:
  htmltext = f # change as necessary, just needs to be string
  soup = BeautifulSoup(htmltext,'lxml')
  h2found = soup.find('h2',id="title")
  print(h2found)
  print(h2found.text)

Beautiful Soup有great documentation,是用于解析html的标准和最佳库。