我知道有一种简单的方法可以复制所有 url 的来源,但这不是我的任务。我需要将所有文本(就像 webbrowser 用户复制它一样)完全保存到 *.txt 文件中。
是不是不可避免要为它解析源码html,还是有更好的办法?
我认为如果你根本不解析是不可能的。我想你可以使用 HtmlParser http://docs.python.org/2/library/htmlparser.html并只保留数据标签,但你很可能会得到许多其他元素而不是你想要的。
由于 style="display: hidden;" 之类的东西,要获得与 [Ctrl-C] 完全相同的内容将很难避免解析。这将隐藏文本,这将再次导致文档和资源文件的 html、javascript 和 css 的完整解析。
使用 python,BeautifulSoup模块非常适合解析 HTML,值得一看。要从网页中获取文本,这只是以下情况:
#!/usr/env python
#
import urllib2
from bs4 import BeautifulSoup
url = 'http://python.org'
html = urllib2.urlopen(url).read()
soup = BeautifulSoup(html)
# you can refine this even further if needed... ie. soup.body.div.get_text()
text = soup.body.get_text()
print text
需要解析。不知道有没有库方法。一个简单的正则表达式:
text = sub(r"<[^>]+>", " ", html)
这需要很多改进,但这是一个起点。