我使用的是Python 2.7。 我想转换网址。
我想要的是
INPUT:
HOGEHOGE<url>http://super.long.url.com</url>BARBAR<url>http://super.long.url.com</url>FUGAFAUGA
*字符串包含日语
输出:
HOGEHOGEhttp://short.urlBARBARhttp://short.url2FUGAFUGA
我的代码在这里。
# -*- coding: utf-8 -*-
import re
def __make_shorten_url_text(text):
def make_shorten_url(m):
# (1)how to use it??
long_url = m.compile('\g<1>')
import urllib
import bitly_api
login_name = 'my id'
api_key = 'my secret key'
bitly = bitly_api.Connection(login_name, api_key)
quote_url = urllib.quote(long_url.group(), ':/?&=')
try:
result = bitly.shorten(quote_url)
except:
return long_url
return result['url'].encode('utf-8')
shortened_url_text = re.sub(ur'<url>(.*?)</url>', make_shorten_url, text)
return shortened_url_text
print __make_shorten_url_text('HOGE https://stackoverflow.com/posts/29250195/ BARBAR')
我使用bitly_api。
我想获取网址但我不知道如何使用'\ g&lt; 1&gt;'在MatchObject中。 我的代码中注释掉的(1)是我不知道如何修复。
你能告诉我如何解决它吗?
INPUT:
JAPANESE_CHATACTER<url>https://stackoverflow.com/posts/29250195/</url>JAPANESE_CHATACTER
Python中的
输出:
JAPANESE_CHATACTERhttp://bit.ly/1GXY6npJAPANESE_CHATACTER。
Django中的
输出:
JAPANESE_CHATACTER<url>https://stackoverflow.com/posts/29250195/</url>JAPANESE_CHATACTER
它会自动转换。
答案 0 :(得分:0)
official documentation上没有详细记录吗?
def make_shorten_url(m):
long_url = m.group(1) # Access the capture group here
import urllib
import bitly_api
login_name = 'my id'
api_key = 'my secret key'
bitly = bitly_api.Connection(login_name, api_key)
# .group() no more needed
quote_url = urllib.quote(long_url, ':/?&=')
try:
result = bitly.shorten(quote_url)
except:
return long_url
return result['url'].encode('utf-8')