用python创建动态论坛签名生成器

2024-05-08 15:00:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我搜索了又搜索,但只找到了涉及php的解决方案,而不是python/django。我的目标是制作一个允许用户输入字符串的网站(后端用python编写)。然后运行后端脚本并输出包含一些信息的字典。我想用字典里的信息把它画到我在服务器上的图片上,然后把新的图片给用户。我现在怎样才能离线完成?我可以使用哪些库?对我该走的路线有什么建议都很好。在

我仍然是一个新手,所以请原谅我,如果我的代码需要工作。到目前为止,我对我所拥有的没有任何错误,但就像我说过的,我不知道下一步要去哪里实现我的目标。如有任何提示,我们将不胜感激。在

这就是我想要的最终目标是http://combatarmshq.com/dynamic-signatures.html

这就是到目前为止我所拥有的(我在这里使用了BeautifulSoup作为解析器。如果这太过分了,或者我做得不太好,请告诉我是否有更好的选择。谢谢):

获取我想要的数字(这些是动态的)的url是:http://combatarms.nexon.net/ClansRankings/PlayerProfile.aspx?user=

玩家的名字在user后面,所以一个例子是http://combatarms.nexon.net/ClansRankings/PlayerProfile.aspx?user=-aonbyte

这是具有基本功能的代码,用于抓取网站:

from urllib import urlopen
from BeautifulSoup import BeautifulSoup

def get_avatar(player_name):
    '''Return the players avatar as a binary string.'''
    player_name = str(player_name)
    url = 'http://combat.nexon.net/Avatar/MyAvatar.srf?'
    url += 'GameName=CombatArms&CharacterID=' + player_name
    sock = urlopen(url)
    data = sock.read()
    sock.close()
    return data

def save_avatar(data, file_name):
    '''Saves the avatar data from get_avatar() in png format.'''
    local_file = open(file_name + '.png', 'w' + 'b')
    local_file.write(data)
    local_file.close()

def get_basic_info(player_name):
    '''Returns basic player statistics as a dictionary'''
    url = 'http://combatarms.nexon.net/ClansRankings'
    url += '/PlayerProfile.aspx?user=' + player_name
    sock = urlopen(url)
    html_raw = sock.read()
    sock.close()
    html_original_parse = BeautifulSoup(''.join(html_raw))
    player_info = html_original_parse.find('div', 'info').find('ul')
    basic_info_list = range(6)
    for i in basic_info_list:
        basic_info_list[i] = str(player_info('li', limit = 7)[i+1].contents[1])
    basic_info = dict(date = basic_info_list[0], rank = basic_info_list[1], kdr = basic_info_list[2], exp = basic_info_list[3], gp_earned = basic_info_list[4], gp_current = basic_info_list[5])
    return basic_info

下面是测试这些函数的代码:

^{pr2}$

Tags: nameinfohttpurldatanetbasichtml
1条回答
网友
1楼 · 发布于 2024-05-08 15:00:09

如果我没听错,你需要从一个地方得到一个图像,从另一个地方获取一些文本信息,在图像的顶部绘制文本,然后返回标记的图像。我有这个权利吗?在

如果是这样的话,请获取Python图像库PIL。PIL和BeatifulSoup都能够直接从打开的URL读取内容,因此您可以忘记socket的胡言乱语。从HTTP请求中获取播放器名称,打开图像,使用BeautifulSoup获取数据,使用PIL的文本函数在图像上写入内容,将图像保存回HTTP响应中,就完成了。在

相关问题 更多 >

    热门问题