我想要拷贝一个题库,但是我不知道题库内

2018-04-21 10:54:32 +08:00
 alidasuhe

但是我不知道题库内有哪些题。我只能通过题库提供的 API 每次从题库中随机获取 m 道题(这 m 道题中的每道题都是互不相同的)。

请问有什么算法可以让我最快获取到题库内的绝大部分的评论题目?

3989 次点击
所在节点    算法
20 条回复
ThirdFlame
2018-04-21 11:05:21 +08:00
"绝大部分的评论题目"
能有啥算法,不就是不停的调用 API,入库。 遇到重复的 跳过。一直到多次调用都不出新题了为止 。
summerwar
2018-04-21 11:20:45 +08:00
钱,直接收购
alidasuhe
2018-04-21 11:21:37 +08:00
打错字了,不好意思哈。
最后一句话应该去掉“评论”一词,是“最快获取到题库内的绝大部分题目? ”。
qiayue
2018-04-21 11:22:27 +08:00
如果 API 没有访问限制,那么不断请求吧
flowfire
2018-04-21 11:23:08 +08:00
。。。标记重补法?
binux
2018-04-21 11:27:14 +08:00
你就一个选项,这还能怎么回答?
alidasuhe
2018-04-21 11:38:04 +08:00
@binux 我的问题在于——“怎么判断题库内的绝大部分题已经被收集到了?”
Cbdy
2018-04-21 11:39:00 +08:00
应该这么问,假定题库中有 n 道题,请求多少次有 99%的几率拿到所有题
alidasuhe
2018-04-21 11:41:14 +08:00
不好意思啊,各位,我没把问题描述清楚……

我是想问——“怎么判断题目中的绝大部分题已经收集到了?”
alidasuhe
2018-04-21 11:42:29 +08:00
@qiayue 有限制,请求一次 API 就要花两块钱。。。
alidasuhe
2018-04-21 11:45:22 +08:00
m 是一个常量。
ThirdFlame
2018-04-21 11:53:59 +08:00
当你连续 3-5 次刷不出来新题的时候,应该就差不多了。 最少大多数题应该拿到了。
sobigfish
2018-04-21 11:55:46 +08:00
请求一次 API 就要花两块钱。。。那你刷出重复题的概率稍微高一点就亏的很啊-。-
zjb861107
2018-04-21 12:54:33 +08:00
你能确定,每次取的题是完全随机吗?

如果,一定时间内请求次数超过某个值,就不返回给你新的题目,这是一个很容易实现的反爬策略吧
A3m0n
2018-04-21 13:33:46 +08:00
标记重捕法。
A3m0n
2018-04-21 13:37:12 +08:00
@A3m0n

https://zh.wikipedia.org/wiki/%E6%A0%87%E5%BF%97%E9%87%8D%E6%8D%95%E6%B3%95

> 水库中有若干条鱼,捕捉 100 条,做上标记后重新放回水库中。24 小时后再次捕捉 100 条,其中只有 10 条带有标记,可估算出水库中鱼的总数约为 1000 条。
sobigfish
2018-04-21 16:00:26 +08:00
@zjb861107 #13 如果是问答类的 app, 返回错误答案更好,比如 4 个答案全是错的。这样也兼容用户在刷新(刷到旧题不是容易答对了?)
silencefent
2018-04-21 17:36:55 +08:00
api 总会返回一个 id 吧,数据库插入呗,id 重复丢掉或者算更新
alidasuhe
2018-04-21 21:27:23 +08:00
@A3m0n 谢谢
ssmj1005
2018-04-26 14:30:43 +08:00
@alidasuhe 你好,你用的是哪个题库?是高考题库吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/448645

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX