2013-11-20 93 views
0

我正在尝试使用从调用api返回的标题检索维基百科页面。 我正在从python的urllib2库调用Wikipedia API。维基百科API:获取带有统一标题的文章

当我想要自动执行过程时,我一直处理unicoded标题。 这是问题的一个例子:

让我们假设我们要检索的网页约Escola的高级DE科学城Empresariais,具有以下链接: http://en.wikipedia.org/wiki/Escola_Superior_de_Ci%C3%AAncias_Empresariais_(Set%C3%BAbal)

调用我得到我想要的东西: http://en.wikipedia.org/w/api.php?action=query&prop=revisions&format=xml&titles=Escola_Superior_de_Ci%C3%AAncias_Empresariais_(Set%C3%BAbal)&rvprop=timestamp|user|comment|content

所以要到问题的开始,如果我还使用维基百科的API来搜索学校,如: http://en.wikipedia.org/w/api.php?action=query&list=search&srprop=''&format=xml&srsearch=Escola_Superior_de_Empresariais

我得到以下XML字符串:

<api> 
    <warnings> 
    <search xml:space="preserve">Unrecognized value for parameter \'srprop\': \'\'</search> 
    </warnings> 
    <query> 
    <searchinfo totalhits="7"/> 
    <search> 
     <p ns="0" title="Escola Superior de Ci\xc3\xaancias Empresariais (Set\xc3\xbabal)"/> 
     <p ns="0" title="List of universities in Cape Verde"/> 
     <p ns="0" title="Polytechnic Institute of Viana do Castelo"/> 
     <p ns="0" title="S\xc3\xa3o Vicente, Cape Verde"/> 
     <p ns="0" title="Economy of Portugal"/> 
     <p ns="0" title="Higher education in Portugal"/> 
     <p ns="0" title="Grupo Opaia SA"/> 
    </search> 
    </query> 
</api> 

我现在的问题是,我们如何转换返回的字符串

Escola Superior de Ci\xc3\xaancias Empresariais (Set\xc3\xbabal) 

的形式,可以直接从维基百科的API叫什么? 也就是说,我怎么能创造像一个链接:

http://en.wikipedia.org/wiki/Escola_Superior_de_Ci%C3%AAncias_Empresariais_(Set%C3%BAbal)

从检索结果?

+0

你能只是翻译'\ x'为''%? –

+0

http://stackoverflow.com/questions/912811/what-is-the-proper-way-to-url-encode-unicode-characters - 似乎是相同的基本问题 – selllikesybok

+0

不,但与 - http: //stackoverflow.com/questions/18163009/utf-8-percentage-encoding-and-python – selllikesybok

回答

1

使用urllib2.quote,它为你做到这一点。

本质:

utf8_url = 'Escola Superior de Ci\xc3\xaancias Empresariais (Set\xc3\xbabal)' 
percent_url = urllib2.quote(utf8_url) 
相关问题