如何在python中复制url中的所有文本(如[Ctrl + A] [Ctrl + C]和webbrowser)?

时间:2013-05-07 18:03:27

标签: python browser

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

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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

要与[Ctrl-C]完全相同,因为诸如style =“display:hidden;”之类的东西会很难避免解析这将隐藏文本,这将再次导致完整解析文档和资源文件的html,javascript和css。

答案 2 :(得分: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