如何将网页保存为文本文件 [Python]

7

我想将网页(所有内容)保存为文本文件。(就像你右键单击网页 ->“另存为” ->“保存为文本文件”,而不是html文件)

我已尝试使用以下代码:

import urllib2
url=''
page = urllib2.urlopen(url)
page_content = page.read()
file = open('file_text.txt', 'w')
f.write(page_content)
f.close()

我的目标是能够保存整个文本而不带有HTML代码。 (例如,我想读取“è”而不是“é”)


可能是使用Python将渲染的HTML转换为纯文本的重复问题。 - pnovotnak
有一件事 - 你打开了“file”,但是写入和关闭的是“f”。名称需要保持一致。 - recurvata
1个回答

4

看看html2text,如其他地方所述

import urllib2
import html2text
url=''
page = urllib2.urlopen(url)
html_content = page.read()
rendered_content = html2text.html2text(html_content)
file = open('file_text.txt', 'w')
file.write(rendered_content)
file.close()

嗨pnovotnak,谢谢! 我看到了html2text库,但是当我使用“import”时它返回一个错误。 import html2text ~ ImportError: No module named html2text我在Windows上使用Python 2.7,我不知道如何添加库“html2text”以便正确使用。(我也尝试了Python 3.5,但是遇到了同样的问题) - Skipper
没问题 :) 你需要安装它,因为它不是标准的 Python 库的一部分。请看这里:http://python-packaging-user-guide.readthedocs.org/en/latest/installing/ - pnovotnak
1
我在这一行代码 rendered_content = html2text... 上遇到了错误 **TypeError: a bytes-like object is required, not 'str'**。 - jeppoo1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接