【问题标题】:Get first paragraph of article from Wikipedia从维基百科获取文章的第一段
【发布时间】:2013-01-08 09:05:29
【问题描述】:

从 Wikipedia 获取“好莱坞”一词的文章第一段的正确方法是什么?结果,$result 变量包含 first paragraph of the page

好莱坞是美国加利福尼亚州洛杉矶的一个地区,位于洛杉矶市中心的西北偏西。[2]由于其作为电影制片厂和电影明星的历史中心的名声和文化身份,好莱坞这个词经常被用作美国电影的转喻。尽管电影产业的大部分已经分散到周边地区,如西洛杉矶、圣费尔南多和圣克拉丽塔山谷,但重要的辅助产业,如剪辑、特效、道具、后期制作和灯光公司仍留在好莱坞,因为派拉蒙影业的外景拍摄。

如果它包含HTML标签就可以了(甚至比纯文本更好)。

【问题讨论】:

  • 您可以改为访问dbpedia.org/resource/Hollywood。那是一项服务,它以多种 RDF 格式提供 wikipdia 数据集。看看页脚。特别是 XML 格式对您来说可能很有趣

标签: php web-scraping wikipedia wikipedia-api


【解决方案1】:

我不知道 Kohana 是什么,但是要获取某个 Wikipedia 页面的 HTML 文本,您可以使用 the API

例如,要获取好莱坞文章第一部分的 HTML,您可以使用如下查询:

http://en.wikipedia.org/w/api.php?format=xml&action=query&prop=revisions&titles=Hollywood&rvprop=content&rvsection=0&rvparse

这是 XML 格式,但 JSON 也是一种选择。

此外,这会返回整个第一部分(包括信息框),而不仅仅是第一段。

【讨论】:

  • 对不起。好的,我有en.wikipedia.org/w/… 如何将第一段放入 $result ?谢谢。
  • 我不懂 PHP,所以无法帮助您,抱歉。
  • 这算不算“抓取”?
【解决方案2】:

您可以使用Simple HTML DOM 库轻松解析网页中的 HTML:

include('inc/simple_html_dom.php'); // this line should be replaced with the Kohana way of including the library

// Create DOM from URL
$html = file_get_html('http://en.wikipedia.org/wiki/Hollywood');

// Get the first paragraph
$p = $html->find('p', 0);

echo $p->innertext; // Prints <b>Hollywood</b> is a district in (...)

我从未使用过 Kohana,但似乎有 at least 2 Kohana modules for Simple HTML DOM,因此在您的项目中使用该库应该很容易。

【讨论】:

  • 屏幕抓取维基百科页面不是一个好主意,因为布局可以随时更改并且有可用的 API。
猜你喜欢
  • 1970-01-01
  • 2010-12-06
  • 2011-05-26
  • 1970-01-01
  • 2011-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
相关资源
最近更新 更多