![](/img/trans.png)
[英]How to copy all the text (using ctrl + c and ctrl + a comands) from a text file in python?
[英]How to copy all the text from url (like [Ctrl+A][Ctrl+C] with webbrowser) in python?
我知道有一种简单的方法可以复制所有url源,但这不是我的任务。 我只需要将所有文本(就像webbrowser用户将其复制一样)保存到* .txt文件即可。
是否不可避免地要为此解析源代码html,还是有更好的方法?
需要解析。 不知道是否有一个库方法。 一个简单的正则表达式:
text = sub(r"<[^>]+>", " ", html)
这需要许多改进,但这是一个起点。
我认为如果您根本不解析,那是不可能的。 我猜您可以使用HtmlParser http://docs.python.org/2/library/htmlparser.html并仅保留数据标签,但是您很可能会获得许多其他想要的元素。
要获得与[Ctrl-C]完全相同的效果,由于诸如style =“ display:hidden;”之类的事情,很难避免解析。 这将隐藏文本,这将再次导致对文档和资源文件的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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.