【问题标题】:How do I display a web page with Python?如何使用 Python 显示网页?
【发布时间】:2011-12-04 17:43:50
【问题描述】:

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

【问题讨论】:

  • 如果措辞不当,您的问题会很有趣。我相信您会问“是否有 Python 库可以以 ASCII 格式呈现 HTML 页面?”我相信这个问题的正确答案是“对不起,不”。也许有一些标签的小子集(H*、DIV、P、BR)可以查找并忽略其余部分。

标签: python html webpage pexpect html-parsing


【解决方案1】:

这是一个不小的挑战。您想要生成 elinks 的事实让我想知道您为什么不直接使用它。查看它有哪些可扩展性/插件/插件选项,或尝试重写它以满足您的特定需求。

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

【讨论】:

  • 我正在使用 Python,因为我需要在 PyGame 中将其显示为文本。 Elinks 将打印到终端,但我无法访问我的应用程序的输出。
  • 好吧,我想你是对的。那我试试自己写浏览器吧。
【解决方案2】:

使用 python urllib

输入 url --> 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 中的“curl”

【讨论】:

  • 这只是打印原始的 HTML 数据,没有以任何方式格式化。
  • 哦!我误解了你的问题......(然后以 HTML 格式(仅文本)将网页打印到终端。)我理解 HTML 格式(html 标签)
【解决方案3】:
import requests
r = requests.get('http://www.google.com/')
print(r.content)

【讨论】:

    猜你喜欢
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2023-03-21
    • 2021-03-14
    • 2016-09-18
    • 1970-01-01
    • 2013-02-09
    相关资源
    最近更新 更多