2011-12-04 57 views
0

我想在Python中读取用户输入以获取url(例如http://www.google.com),然后以HTML格式(仅限文本)将网页打印到终端。我尝试使用pexpect.spawn('elinks'),但elinks似乎没有写入标准输出。我还查看了HTMLParser模块,但我不知道如何将结果文本格式化为类似于网页的内容。有什么建议?如何使用Python显示网页?

+0

以 “卷曲”如果说得不好,你的问题很有意思。我相信你问:“是否有一个Python库能够以ASCII格式呈现HTML页面?”我相信这个问题的正确答案是,“对不起,没有。”也许有一小部分标签(H *,DIV,P,BR)可供您查找并忽略其余部分。 – Malvolio

回答

1

这是一个不小的挑战。你想产卵elinks的事实让我想知道为什么你不只是用它来代替。查看它具有哪些可扩展性/插件/插件选项,或尝试重写它以适应您的特定需求。

最终,您需要编写自己的带有curses后端的浏览器布局引擎。如果您使用python,urwid是curses布局的热门选择。

+0

我正在使用Python,因为我需要在PyGame中将它显示为文本。 Elinks将打印到终端,但无法从我的应用程序访问输出。 – Skyler

+0

嗯,我想你是对的。然后我会尝试写我自己的浏览器。 – Skyler

0

与Python的urllib

输入网址 - >的urllib - >页面 - >打印控制台

# example in the python urllib page 

import urllib 

opener = urllib.FancyURLopener({}) 
f = opener.open("http://www.python.org/") 
f.read() 

# modify: 

html = f.read() 

# add: 

print html 

# to print in terminal 

它类似于UNIX

+0

这只是打印原始HTML数据,没有以任何方式格式化。 – Skyler

+0

哦!我误解了你的问题......(然后以HTML格式(仅文本)将HTML页面打印到终端上。)我理解HTML格式(html标签) – Llanis

-3
import requests 
r = requests.get('http://www.google.com/') 
print(r.content)