我试图了解如何构建API调用,在这里我可以获取此处提到的配方,配料和过程的数据(json格式)。有人可以帮助我解决这个问题吗?
https://en.wikibooks.org/wiki/Cookbook:Recipes
此URL具有配方名称,当单击每个项目时,它会获得配料和过程。
我试图了解如何构建API调用,在这里我可以获取此处提到的配方,配料和过程的数据(json格式)。有人可以帮助我解决这个问题吗?
https://en.wikibooks.org/wiki/Cookbook:Recipes
此URL具有配方名称,当单击每个项目时,它会获得配料和过程。
要获取所有食谱,我将不使用Cookbook:Recipes,而是更完整的Category:Recipes。
用于列出Category:Recipes中列出的所有配方的API调用如下:
https://en.wikibooks.org/w/api.php?action=query&generator=categorymembers&gcmtitle=Category:Recipes&gcmlimit=max&format=json&gcmcontinue=。
它会返回500个食谱,但Wikibooks上还有更多食谱。要获取其余值,请在响应中使用continue -> gcmcontinue
值,并将其附加到下一个API调用。
要获取配方的成分和步骤,请致电例如
https://en.wikibooks.org/w/api.php?action=query&prop=revisions&format=json&rvprop=content&rvslots=%2A&rvsection=1&titles=Cookbook:Biscuits。
您可以使用|
字符通过相同的API调用来检索多个配方:
https://en.wikibooks.org/w/api.php?action=query&prop=revisions&format=json&rvprop=content&rvslots=%2A&titles=Cookbook:Biscuits|Cookbook:Baklava。
如果只想检索配料或配方过程,请使用附加参数rvsection=
。大部分时间(但并非总是如此),配料在第一部分中,过程在第二部分中。所以打电话
我不确定这是否是您的问题,但是除了Pascalco的回答,值得注意的是,您将无法获得结构化的json数据,该数据详细说明成分的数量和程序,例如:>
{ "ingredient": "milk","quantity": { "number": "1","unit":"liter"}}
API将把原始mediawiki的语法页面内容放在一个字段中,并添加有关页面的一些其他元数据。
此外,这些页面不使用模板的事实使得使用语法解析器或html解析器很难提取此类数据。