繁体   English   中英

如何在python中从url复制所有文本(例如,使用Webbrowser的[Ctrl + A] [Ctrl + C])?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM