0

我知道有一种简单的方法可以复制所有 url 的来源,但这不是我的任务。我需要将所有文本(就像 webbrowser 用户复制它一样)完全保存到 *.txt 文件中。

是不是不可避免要为它解析源码html,还是有更好的办法?

4

3 回答 3

1

我认为如果你根本不解析是不可能的。我想你可以使用 HtmlParser http://docs.python.org/2/library/htmlparser.html并只保留数据标签,但你很可能会得到许多其他元素而不是你想要的。

由于 style="display: hidden;" 之类的东西,要获得与 [Ctrl-C] 完全相同的内容将很难避免解析。这将隐藏文本,这将再次导致文档和资源文件的 html、javascript 和 css 的完整解析。

于 2013-05-07T18:12:25.733 回答
1

使用 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
于 2013-05-07T18:23:19.280 回答
1

需要解析。不知道有没有库方法。一个简单的正则表达式:

text = sub(r"<[^>]+>", " ", html)

这需要很多改进,但这是一个起点。

于 2013-05-07T18:08:53.803 回答