@killa
2015-09-03T13:47:12.000000Z
字数 950
阅读 810
APEX
从上图中的最顶层基本分类开始,获取每个分类的ID(从分类对应的URL中的sid获取)、分类的名称;另外,基本分类的页面中还有次级子分类,如下图(https://answers.yahoo.com/dir/index?sid=396545012 对应的Arts & Humanities分类的页面):
同样获取子分类的ID和名称。
将所有分类存放于一张数据表中。包含字段有ID和名称
分类的层级信息存放于另一张数据表中,以分类的ID作为数据,表示分类之间的层级关系。比如下表表示396545299所代表的分类是396545012所代表分类的子类:
super_class | sub_class |
396545012 | 396545299 |
如上图,要爬取的信息包括问题直接隶属的分类(以ID表示)、问题的题目、问题的补充说明、问题的热度、问题的回答数、问题所有回答的内容、回答者、回答的赞同数、反对数。
对于有Best Answer的问题,如下图:
在爬取上述数据的基础上还要明确标出哪个是最佳回答,以及此最佳回答获得的评价等级。
这部分数据比较复杂,自己设计一下数据表,想好怎么处理回答数不确定情况下,回答的储存方式。
对于回答者,从其个人页面爬取回答者分数、等级(以数值表示,不要加"Level")、用户置信度(也就是最佳回答采纳率)、回答数、提问数。每个用户需要有一个ID,我没有找到直接读取ID的地方,你可以看看能够拿到的数据中有没有可以用来作为ID的(比如URL中的信息),实在不行的话就在数据库中自己定义一个ID。
用户数据可以单独储存在一张表中,其他表以用户的ID来进行引用。