在维基百科中使用生成器时缺少页面内容 API
Missing page content when using generator in Wikipedia API
我正在使用维基百科中的 categorymembers
生成器 API 来有效地检索一个类别中的所有页面,例如:
但有些文章缺少内容,例如页面 id 40376021“Tchagen Airport”:
"40376021": {
"pageid": 40376021,
"ns": 0,
"title": "Tchagen Airport"
},
但是,当我检索单个页面时,它确实有内容:
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 40376021,
"ns": 0,
"title": "Tchagen Airport",
"revisions": [
{
"slots": {
"main": {
"contentmodel": "wikitext",
"contentformat": "text/x-wiki",
"content": "page content here (long, ommited)"
}
}
}
]
}
]
}
}
我不知道这里发生了什么。它不是最近创建的页面,因此不可能是缓存问题。如何确保所有页面的内容都可以在批量结果中看到?
您只能看到前 50 页的内容。
因此,最好在您的请求中设置 gcmlimit=50
:
https://en.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&generator=categorymembers&rvprop=content&rvslots=*&gcmtitle=Category%3AAirports%20in%20Chad&gcmlimit=50
在响应中,您将看到一个 continue>gcmcontinue 值。在下一个请求中使用这个值来获取另外 50 页的内容:
https://en.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&generator=categorymembers&rvprop=content&rvslots=*&gcmtitle=Category%3AAirports%20in%20Chad&gcmlimit=50&gcmcontinue=page|482a402a042a3a4c48464c50011001dcc2dc0a|21079773
如果响应不包含继续值,则您知道您已检索到所有数据。
我正在使用维基百科中的 categorymembers
生成器 API 来有效地检索一个类别中的所有页面,例如:
但有些文章缺少内容,例如页面 id 40376021“Tchagen Airport”:
"40376021": {
"pageid": 40376021,
"ns": 0,
"title": "Tchagen Airport"
},
但是,当我检索单个页面时,它确实有内容:
{
"batchcomplete": true,
"query": {
"pages": [
{
"pageid": 40376021,
"ns": 0,
"title": "Tchagen Airport",
"revisions": [
{
"slots": {
"main": {
"contentmodel": "wikitext",
"contentformat": "text/x-wiki",
"content": "page content here (long, ommited)"
}
}
}
]
}
]
}
}
我不知道这里发生了什么。它不是最近创建的页面,因此不可能是缓存问题。如何确保所有页面的内容都可以在批量结果中看到?
您只能看到前 50 页的内容。
因此,最好在您的请求中设置 gcmlimit=50
:
https://en.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&generator=categorymembers&rvprop=content&rvslots=*&gcmtitle=Category%3AAirports%20in%20Chad&gcmlimit=50
在响应中,您将看到一个 continue>gcmcontinue 值。在下一个请求中使用这个值来获取另外 50 页的内容: https://en.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&generator=categorymembers&rvprop=content&rvslots=*&gcmtitle=Category%3AAirports%20in%20Chad&gcmlimit=50&gcmcontinue=page|482a402a042a3a4c48464c50011001dcc2dc0a|21079773
如果响应不包含继续值,则您知道您已检索到所有数据。