有没有办法以编程方式从在线整数序列百科全书 (http://oeis.org) 搜索和检索结果?
我搜索了他们的网站,结果总是以 html 形式返回。他们似乎没有提供 API,但在政策声明中他们说以编程方式访问数据库是可以接受的。但是如何在不抓取屏幕的情况下做到这一点呢?
非常感谢您的帮助。
最佳答案
OEIS 现在提供多个访问点,而不仅仅是使用其内部格式的访问点。这些似乎基本上没有记录,所以这里是我找到的所有端点:
https://oeis.org/search?fmt=json&q=<sequenceTerm>&start=<itemToStartAt>
返回从给定的 sequenceTerm
找到的结果的 JSON 格式响应。如果返回的结果太多,count
将 > 0,而 results
将为 null
。如果没有返回结果,count
将为 0。itemToStartAt
用于结果分页,因为最多只返回 10 个。从 0 开始。如果您想返回第二页结果,则该值等于 10。有关每个条目含义的信息可以在 here 中找到。 .
https://oeis.org/search?fmt=text&q=<sequenceTerm>&start=<itemToStartAt>
与之前的参数完全相同,但是这会以 OEIS 内部格式返回它。其中主要写的是here 。除非您的项目需要它,否则我强烈建议使用 JSON 格式。
https://oeis.org/search?fmt=<json|text>&q=id:A<sequenceNumber>
如果找到sequenceNumber
,将返回单个结果。这是获取单个序列的建议方法,因为它似乎比一些可用作查询的替代方法要优化得多。请求通常需要不到一秒钟的时间。替代的搜索查询方法可以在 this 上找到页。
https://oeis.org/A<sequenceNumber>/graph?png=1
此端点可用于抓取用于绘制数据点的图像。或者,将 png 设置为零会返回包含其图形的 HTML 页面。
https://oeis.org/recent.txt
这会返回 OEIS 内部格式的最近更新条目的列表。没有可用的参数或 JSON 格式,因为这看起来像是一个简单地提供给客户端的静态文本文件。由于 OEIS 数据库的回复长度(对于某些序列回复可能需要五秒以上),我强烈建议大量缓存请求并在请求发生变化时使用上述端点进行更新。
关于api - 以编程方式访问在线整数序列百科全书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5991756/