最大Twitter ID?
有没有人知道Twitter上用户ID的最大值是多少?现在大约有2亿用户,那这些ID的范围是从1到2亿吗?我发现这个范围内有些ID并没有被使用。
我有一个Python脚本,基本上是访问以下网址:
"/1/statuses/user_timeline/" + str(user_id) + ".json?count=200"
谢谢!
3 个回答
没人知道这个。
之前有讨论过关于推特到底有多少用户的问题。
进行了很多测试,还探查了ID的范围等等。
结果显示,这些ID一开始是按顺序增加的,但后来之间会有大约10个的规律性间隔,有时候看起来又完全随机。
我不知道这些信息收集得有多准确,目标也不一样,但我想你明白我的意思。
从技术角度来看,我觉得在像推特这样的大网络中,情况应该就是这样。
我很确定这些ID是分片的,也就是说它们是在特定的区域或服务器上分配的。
比如说,如果你的ID是mudolo 17,我就知道要去那个特定的服务器上查找,或者在那个特定的国家,或者其他什么地方。
或者服务器可能会有自己的前缀或类别,用来给新用户分配ID,以避免重复的问题。
在大多数情况下,泄露这种信息是不常见的,或者说“不是那么酷”。
别问我为什么,这只是我的经验,很多公司希望对外展示的信息尽量少。
这包括不拥有一个可重复的透明ID递增系统。
这也容易受到一些有害攻击、不必要的爬虫等问题的影响。
所以我的意思是。
没有办法给你一个可靠的答案。而且这也不应该是必要的。
你应该设计你的应用程序来应对各种可能的情况。
如果你想知道你的数据库字段应该多大,以避免冲突。
我觉得整数类型现在应该没问题。(即使在32位系统上)
但一定要随时准备升级。
特别是不要假设它会一直是数字。它只是一个唯一的字符串!
Twitter的API说明说,id
是一个大于53位的整数,并且使用64位的整数来存储这个值是安全的。
不过,建议使用字符串形式的id_str
,这样做是为了“更安全一些”!这是什么意思呢?
Twitter的API并不能保证用户ID是一个不断增加的数字。它只是一个“永久唯一的ID,用来引用一个对象”(来自API的文档)。这意味着将来他们可能会重新使用一些ID(比如被删除用户的ID),或者甚至以半随机的方式分配这些值。ID的分配可能并不是按顺序来的。
所以,不要过于解读这个值,比如用它来表示注册用户的数量,这样的做法可能并不可靠。