当前位置:  开发笔记 > 编程语言 > 正文

从维基百科获取信息 - 如何获取HTML表单?

如何解决《从维基百科获取信息-如何获取HTML表单?》经验,为你挑选了1个好方法。

我正在使用curl从维基百科中检索信息.到目前为止,我已成功检索基本文本信息,但我真的想要用HTML检索它.

这是我的代码:

$s = curl_init();       

$url = 'http://boss.yahooapis.com/ysearch/web/v1/site:en.wikipedia.org+'.$article_name.'?appid=myID';
curl_setopt($s,CURLOPT_URL, $url);
curl_setopt($s,CURLOPT_HEADER,false);
curl_setopt($s,CURLOPT_RETURNTRANSFER,1);

$rs = curl_exec($s);

$rs = Zend_Json::decode($rs);

$rs = ($rs['ysearchresponse']['resultset_web']);

$rs = array_shift($rs);
$article= str_replace('http://en.wikipedia.org/wiki/', '', $rs['url']);

$url = 'http://en.wikipedia.org/w/api.php?';
$url.='format=json';
$url.=sprintf('&action=query&titles=%s&rvprop=content&prop=revisions&redirects=1', $article);

curl_setopt($s,CURLOPT_URL, $url);
curl_setopt($s,CURLOPT_HEADER,false);
curl_setopt($s,CURLOPT_RETURNTRANSFER,1);

$rs = curl_exec($s);
//curl_close( $s );
$rs = Zend_Json::decode($rs);

$rs = array_pop(array_pop(array_pop($rs)));
$rs = array_shift($rs['revisions']);
$articleText = $rs['*'];

然而,以这种方式检索的文本不足以显示:(它全部采用这种格式

'''Aix-les-Bains'''[[Savoie]] [[法国部门]] [[罗纳 - 阿尔卑斯]] [[地区] [[Communes of France | commune]法国|地区]]在东南[[法国]].

铁路北[尚贝里]它位于靠近[紫胶杜歇] {简称=上} {转换| 9 |千米| |英里}.

==历史=='''Aix''源于[[拉丁文]]''Aquae''(字面意思是"水";''cf''[[Aix-la-Chapelle]](亚琛)或[[Aix] -en-Provence]]),Aix在[[罗马帝国]]期间洗澡,甚至在它被重新命名为'Aquae Gratianae'以纪念[[格拉蒂安皇帝]],在不远处被暗杀, [[里昂]],[[383]].许多罗马遗体幸存下来.[[Image:IMG 0109 Lake Promenade.jpg | thumb | left | Lac du Bourget Promenade]]

如何获取维基百科文章的HTML?


更新:谢谢,但我对此有点新,现在我正在尝试运行xpath查询[虽然是第一次],似乎无法获得任何结果.我实际上需要知道一些事情.

    我如何只要求文章的一部分?

    如何获取所请求文章的HTML.

我从维基百科上浏览了这个关于数据挖掘的网址 - 它提出了一个想法,向维基百科api发出第二个请求,将检索到的维基百科文本作为参数并检索html - 尽管到目前为止它似乎没有工作:( -我不想只把整篇文章当作乱七八糟的html来转储它.基本上我的应用程序它的作用是你在地图上有一些位置和城市针脚 - 你点击城市标记它会要求通过相关div中显示的城市的ajax详细信息.我希望动态地从维基百科获取这些信息.我会担心如何处理特定城市以后不存在的文章,只需要确保它在这一点上工作.

有没有人知道一个很好的工作示例,它正在寻找我正在寻找的东西,即阅读和解析维基百科文章的选定部分.


根据提供的网址 - 它说我应该将wiki文本发布到维基百科api位置,以便返回已解析的html.问题是,如果我发布信息,我得不到任何响应,而是一个我拒绝访问的错误 - 但是如果我尝试将wikitext包含为GET,则它会解析没有问题.但是,当我有太多的文本需要解析时,它当然失败了.

这是维基百科api的问题吗?因为我已经被黑客攻击了两天而现在没有运气:(



1> Frank Farmer..:

最简单的解决方案可能是抓取页面本身(例如http://en.wikipedia.org/wiki/Combination),然后

使用xpath查询提取内容.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有