在引号中包含已定义的术语

时间:2015-12-22 23:15:36

标签: python import urllib function python-3.5

我玩了很多名为ROBLOX的游戏,自更新以来,你无法保存你的头像。我使用python来获取网站的编码(因为你仍然可以查看它,你只是不能保存它),并使它保存到你的计算机。 我定义条款:

  • CharacterID(作为用户的ID)

http://www.roblox.com/thumbnail/user-avatar?userId=19088261&thumbnailFormatId=124&width=352&height=352

(我的ID是19088261(我在编码中发现了URL))

  • Robloxian(作为播放器的用户名)

我尝试使用它来打开并保存图像:

import urllib

Robloxian = int(input("First off, before we start, what's your roblox username?: "))
CharacterID = int(input("ID: "))
URL = "http://www.roblox.com/thumbnail/user-avatar?userId=(CharacterID)&thumbnailFormatId=124&width=352&height=352"
urllib.urlretrieve(URL, "(Robloxian)s Avatar.jpg"))

如何下​​载图片?

1 个答案:

答案 0 :(得分:0)

()括号(单数:括号),而不是"引号"(我已经包围了用实际引号)。在Python中,括号和引号都不会将一个字符串插入到另一个字符串中...也许您正在考虑使用其他语言?

我建议你(重新)阅读" The Python Tutorial",其中包括introduction to stringsfancier output formatting部分。

官方Python文档包含string formattingformat string syntaxformat specification mini-language的更正式定义。通常使用字符串.format method来调用它们。

(还有一个较旧的printf-style string formatting syntax,如果您有C或C衍生语言(如Java和PERL)的背景,可能对您更熟悉。如果您还不知道,学习它的唯一原因是在较旧的Python代码中识别它。)

字符串也可以与+运算符粘合在一起:

url = url_prefix + character_id + url_suffix

这是一个简化的版本,展示了你想要去的地方:

import urllib

character_id = raw_input('Roblox character ID: ')
url_template = 'http://www.roblox.com/thumbnail/user-avatar?userId={0:s}&thumbnailFormatId=124&width=352&height=352'
url = url_template.format(character_id)
file_name = character_id + '.html'
urllib.urlretrieve(url, file_name)

注意事项:

  1. 在Python 2中使用raw_input(在Python 3中重命名为input)。它不仅更安全,而且总是返回您想要的数据类型:字符串。所有与int混淆的都是浪费时间。

  2. url_template是"包含"字符串,{0:s}标记将插入其他字符串(在本例中为字符的ID号)。

  3. 模板字符串的.format方法返回一个新字符串,稍后会与urlretrieve一起使用。

  4. file_name非常简单,我只是将两个字符串与+结合在了一起。

  5. 我跟随半官方Style Guide for Python Code(a.k.a。" PEP 8"),特别是" Naming Conventions"部分。

  6. roblox.com网址无法检索图片,但有点HTML包含img标记。我已将文件名更改为字符ID和" .html"延期。 (为什么在用户之后,当头像属于特定角色时命名文件?)

  7. 您可能希望将其存储在包含urlopen的字符串中,而不是将该HTML下载到文件中,然后解析该字符串(搜索此网站以了解如何)以获取{{1 src标记的属性,最后使用img 保存为JPEG文件。