【问题标题】:How can I access pictures/text on a website and display them with Tkinter?如何访问网站上的图片/文本并使用 Tkinter 显示它们?
【发布时间】:2015-03-20 13:39:41
【问题描述】:

我正在尝试编写一个 Python 3.x 程序来访问来自网站的数据(图片、文本等)。我还想在 Tkinter GUI 中显示该数据。

顺便说一句,我在 Windows 上使用 Python 3.4。

【问题讨论】:

  • 我无法想象为什么它不可能。你试过什么?哪一部分给你带来了困难?
  • @dylrei 我什么都没尝试。我目前正在学习 Python,不知道哪些模块可以做什么。我对我提出的问题进行了一些研究,但没有发现任何有用的信息。
  • urllib.urlretrieve()
  • 听起来您希望能够使用 python 浏览到您的视频/图像/文本用于流式传输等的页面,而不是从硬盘驱动器下载和显示(这显然需要更久,更长)。那正确吗?还是您想实际下载信息以供使用?
  • @Totem 是的,没错!我只想将其流式传输到他们的 PC。信息和图片的总大小会很大,无法在文件中分发。

标签: python web-services user-interface python-3.x tkinter


【解决方案1】:

尝试使用urllib 下载并使用PILPillow fork 处理图像:

from Tkinter import *
from PIL import ImageTk
import urllib

# initialize window

root = Tk()
root.geometry('640x480')

# retrieve and download image

location = 'https://www.python.org/static/community_logos/python-logo.png'
image = open('image.png', 'wb')
image.write(urllib.urlopen(location).read())
image.close()

# create canvas for drawing

canvas = Canvas(root, width = 640, height = 480)
canvas.place_configure(x = 0, y = 0, width = 640, height = 480)

# load image with PIL and draw to canvas

image = ImageTk.PhotoImage(file = 'image.png')
canvas.create_image(10, 10, image = image, anchor = NW)

# start program

root.mainloop()

【讨论】:

  • 对于 3.x,使用 PIL 的枕叉。 (对于 2.7 来说,这也是一个不错的选择。) Windows 上的 3.4 附带 tcl/tk 8.6,其 PhotoImage 类可以处理 .png(以及早期版本中可用的 .bmp 和 .jpg)。 Pillow 与 PIL 兼容并作为“PIL”导入,因此发布的代码应该可以工作。
  • 是的,我正在使用 Pillow。
  • 我的评论应该是 .gif,而不是 .jpg。可以通过用枕头转换来使用后者。对于 3.x,urllib 应该是 urllib.request。如果想要完全按照下载的格式使用 .png,可以使用 tkinter.PhotoImage 代替 PIL.ImageTk(使用 tcl/tk 8.6),但用于 tcl/tk 8.5 或任何其他格式(例如 .jpg 或 .tiff)或 for.png 修改(调整大小),需要 PIL(low) 或等效项。
  • @MalikBrahimi 在哪里可以获得 PIL?我尝试使用“pip install PIL and it”没有用。我不确定我是否做错了。
  • @AustinHargis 您可以使用pip install Pillow 安装Pillow 一个功能更强大的PIL 端口。
【解决方案2】:

https://pypi.python.org/pypi/wget

试试 wget!这是一个简单的网络抓取工具,应该可以满足您的需求。

【讨论】:

    猜你喜欢
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多