我正在尝试使用LWP :: Simple获取维基百科页面,但它们并没有回来.这段代码:
#!/usr/bin/perl
use strict;
use LWP::Simple;
print get("http://en.wikipedia.org/wiki/Stack_overflow");
Run Code Online (Sandbox Code Playgroud)
不打印任何东西.但是,如果我使用其他网页http://www.google.com
,那么它可以正常工作.
我是否应该使用其他名称来引用维基百科页面?
这可能会发生什么?
我一直在寻找一种基于搜索字符串查询维基百科api的方法,以获得具有以下属性的文章列表:
我还必须使用jsonp进行查询.
我尝试过使用list = search参数
但似乎忽略了prop = images,我也尝试使用prop = imageinfo和prop = pageimages进行变换.但他们都给我的结果与使用list = search相同.
我也尝试过action = opensearch
http://en.wikipedia.org/w/api.php?action=opensearch&search=test&limit=10&format=xml
当我设置format = xml时,这正是我想要的,但是当使用format = json时返回一个简单的页面标题数组,因此因为jsonp要求而失败.
还有另一种做法吗?我真的想在一个请求中解决这个问题,而不是使用titles = x | y | z进行第一次搜索请求然后第二次请求图像
这可能是一个非常简单的问题,但我似乎无法格式化web webrequest /响应以从Wikipedia API获取数据.我已经在下面发布了我的代码,如果有人可以帮我看看我的问题.
string pgTitle = txtPageTitle.Text;
Uri address = new Uri("http://en.wikipedia.org/w/api.php");
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
string action = "query";
string query = pgTitle;
StringBuilder data = new StringBuilder();
data.Append("action=" + HttpUtility.UrlEncode(action));
data.Append("&query=" + HttpUtility.UrlEncode(query));
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());
request.ContentLength = byteData.Length;
using (Stream postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
// Get the response stream.
StreamReader reader = new …
Run Code Online (Sandbox Code Playgroud) 我想在一个文本文档中搜索关键短语数据库中出现的关键短语(从维基百科文章标题中提取).(即,给定一个文档,我想找出是否有任何短语都有相应的维基百科文章)我发现了Aho-Corasick算法.我想知道为数百万条目的字典构建Aho-Corasick自动机是否有效且可扩展.
给定维基百科的维基百科页面:Stack Overflow,通常有信息框(大部分位于页面顶部的右侧).截屏示例:
DBPedia将所有这些属性列为RDF三元组.您可以在DBPedia上看到示例:Stack Overflow.在那里,您会看到dbpprop:wikiPageUsesTemplate
具有dbpedia:Template:Infobox_website
有趣价值的房产.我想知道哪些维基百科页面使用此模板.我该怎么做并列出所有使用Infobox_website模板的页面?最好使用SPARQL查询,但我对其他简单的解决方案持开放态度.
接下来是所有Infobox模板的列表.维基百科:类别信息框模板显示了所需维基百科类别的层次结构 - 看起来像我正在寻找的.但我希望所有这些都是机器可读的格式,在一个页面上.也许DBPedia也是正确的吗?在DBPedia:类别信息模板和DBPedia:INFOBOX我发现很少的信息.但这些看起来很有希望.如何使用SPARQL查找所有信息框类型,以便我可以为每个信息重复执行第1步?
您可以使用它来测试SPARQL查询:http://dbpedia.org/snorql/
我似乎已经解决了问题1:SPARQL:列出所有使用Infobox_website的页面
此外,这似乎是问题2的查询:SPARQL:列出所有信息框
我正在学习维基百科REST API,但我找不到合适的选项来获取搜索查询的URL.
这是请求的URL:
http://it.wikipedia.org/w/api.php?action=query&list=search&srsearch=calvino&format=xml&srprop=snippet
Run Code Online (Sandbox Code Playgroud)
此请求仅输出标题和片段,但不输出文章的URL.我已经检查了维基百科API文档的list =搜索查询,但似乎没有选项来获取URL.
最诚挚的问候,Fabio Buda
我正在尝试使用维基百科中的一组随机页面获取JSON结果,包括其标题,内容和图像.
我玩过他们的API沙箱,到目前为止,我得到的最好的是:
https://en.wikipedia.org/w/api.php?action=query&list=random&format=json&rnnamespace=0&rnlimit=10
但这仅包括十个随机页面的名称空间,id和标题.我想获得内容和图像.
有谁知道怎么样?
或者,我可以使用单个随机页面的标题,内容和图像URL.我在这里最好的是:
https://en.wikipedia.org/w/api.php?action=query&generator=random&format=json
我想计算特定语言(例如英语)的维基转储中的实体/类别。对于初学者来说,官方文档很难找到/遵循。到目前为止我所理解的是,我可以下载 XML 转储(我从所有可用的不同文件中下载什么),并解析它(?)以计算实体(文章主题)和类别。
该信息即使有,也很难找到。请帮助提供一些有关我如何使用它的说明或我可以了解它的资源。
谢谢!
我需要一种方法将新文章直接插入我的MediaWiki数据库而不会损坏wiki安装.
我猜我是否知道MediaWiki在创建新文章时插入了哪些表/属性然后我可以自己填写它们.
有谁知道更好的方法或有任何建议?
以此Freebase查询为例,如何使用Wikidata api运行相同的查询?
[{
"id": null,
"name": null,
"type": "/film/film",
"/film/film/directed_by": "Steven Spielberg",
"/film/film/genre": "Drama",
"/film/film/story_by": [],
"starring": [{
"actor": [{
"name": "Tom Hanks",
"key": [{
"namespace": "/authority/imdb/name",
"value": null
}]
}]
}],
"/film/film/initial_release_date>": "2000",
"/film/film/initial_release_date<": "2003"
}]
Run Code Online (Sandbox Code Playgroud)
谢谢.