维基百科API:获取带有无标题标题的文章

时间:2013-11-20 12:03:38

标签: python xml unicode wikipedia wikipedia-api

我正在尝试使用从调用api返回的标题来检索Wikipedia页面。 我从python的urllib2库调用Wikipedia API。

当我想要自动化这个过程时,我很难处理无名的标题。 以下是问题的一个示例:

让我们假设我们想要检索有关 Escola SuperiordeCiênciasEmpresariais的页面,其中包含以下链接: 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)

从检索到的结果?

1 个答案:

答案 0 :(得分:1)

使用urllib2.quote,它会为您执行此操作。

本质:

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