首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获取任何维基页面的第一张图片

如何获取任何维基页面的第一张图片
EN

Stack Overflow用户
提问于 2012-04-20 22:47:41
回答 3查看 3.5K关注 0票数 2

我需要获取任何给定wiki页面中的第一个图像/主图像。我可以使用抓取工具来做这件事。但是我正在使用curl来删除页面。但可能是由于互联网连接速度慢,只删除一个维基页面需要很长时间。除此之外,我需要显示至少7-8不同的维基图像在同一时间取决于用户的查询。

所以没有必要使用curl来完成这项工作。我试过wiki api

代码语言:javascript
运行
复制
https://en.wikipedia.org/w/api.php?action=query&titles=India&prop=images&imlimit=1

但是我不能提供其他参数来对这个列表进行排序。通常,此api返回的第一个图像不是您在页面顶部看到的主图像。有时图像与页面的上下文相差太远。

我只需要为每个维基标题显示一张图片。提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-20 23:05:12

似乎图像是按字母顺序返回的……真奇怪。

无论如何,这可能会更好地工作:

https://en.wikipedia.org/w/api.php?action=parse&text={{Barack_Obama}}&prop=images

不幸的是,只有第一个图像是可用的,但至少它是正确的。

票数 2
EN

Stack Overflow用户

发布于 2012-04-20 23:58:17

代码语言:javascript
运行
复制
api.php?action=query&titles=India&prop=images

为您提供按字母顺序排序的所有图像的完整列表。您可以从非api页面上的文档顺序中检索第一个图像。如果你将两者结合起来,你可能会得到最大的收获:

代码语言:javascript
运行
复制
$topic = 'India';
$url = sprintf('http://en.wikipedia.org/wiki/%s', urlencode($topic));
$options = array(
    'http' => array(
        'user_agent' => 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.102011-10-16 20:23:50',
    )
);
$context = stream_context_create($options);
libxml_set_streams_context($context);
$doc = new DOMDocument();
$doc->loadHTMLFile($url);
$xp = new DOMXPath($doc);
$result = $xp->query('(//img[@class = "thumbimage"])[1]');
$image = ($result && $result->length) ? $result->item(0) : NULL;
echo $doc->saveXML($image), "\n";
票数 3
EN

Stack Overflow用户

发布于 2012-04-20 23:09:13

代码语言:javascript
运行
复制
$wikipage = file_get_contents('http://en.wikipedia.org/wiki/Cats');
preg_match_all('/<img[^<]+?>/', $wikipage, $matches);

通常,主图像将是锁定之后的第二个匹配(http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Padlock-silver.svg/20px-Padlock-silver.svg.png)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10248475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档