以豆瓣小组分类页面为例
http://www.douban.com/group/category/1/
第一层 第二层
读书(2388) 作家 书籍类型 报刊 ...
影视(2813) 电影 导演 演员 ...
音乐(4476) 艺术家/乐队 地区 摇滚 ...
艺术(2006) 戏剧(戏曲话剧) 展览 博物馆 ...
生活(6010) 美容 美食 服饰 ...
兴趣与收藏(5530) 旅行 摄影 游戏 ...
情感(3036) 单身 婚恋 其他
学术(2131) 人文 社会科学 自然科学 ...
商业与财经(656) 经济 管理 金融 ...
互联网与技术(1202)编程与软件 数码产品 互联网 ...
体育(627) 足球 羽毛球 篮球 ...
地域(3321) 中国大陆 香港 United States ...
在第二层后有的真接就是内容的内容了,也就是各小组的名称、简介,
而有的如 读书->作家->还有第三层(以A、B、C对作家进行分类),第三层后才是小组分类的具体内容。
请问一下,
如果想要抓取小组分类的具体内容,也就是所有小组名称和简介,
该如何操作?
先谢谢了!!!
Ps:论坛不能发图片?
抓取豆瓣网分类和小组信息的方案
豆瓣网上的分类是多个层次的,而且层次树的深度不一样,下面的网站信息抓取方案的目的是抓取所有豆瓣小组,而没有保持分类层次地抓取分类信息。
首先,在豆瓣网首页定义主题demo_douban_category_list,在Clue Editor工作台定义了Pattern类型的线索,pattern值是http://www.douban.com/group/category/,这个字符串不用手工输入,在完成线索映射后,在DOM树视窗上选择某个代表性的HTML A(超链接)的@href属性,选择右键弹出菜单“线索”-〉“样式映射”-〉“scope 0”,即可将该@href的值填写到工作台上的URL样式编辑框中,删除后面的部分,只保留能代表所有类别的URL地址字串。
然后,为第二层分类页面和小组列表页面定义信息结构,主题名是demo_douban_group_list。在该主题下定义了两个信息结构,辅名分别是default和group,前者用户从第二层(或第N层)分类页面上抓取分类信息,后者从第二层(或第N层)分类页面上抓取小组信息。
信息结构 demo_douban_group_list / default 从分类页面上再深层抓取分类页面的URL,请注意,在Bucket Editor工作台上定义了一个整理箱“group”,这个似乎是多余的,因为我们的目的是抓取分类页面URL,而不关心分类名称,这个仅仅是为了避免DataScraper的一个bug:如果在同一个主题名下有多个信息结构,大家应该取得一致:要么都在Bucket Editor或者Clue Editor上定义抓取规则,要么都不定义。为了照顾第二个信息结构(demo_douban_group_list / default 重点是在Bucket Editor上定义小组信息抓取规则),所以,本信息结构在Bucket Editor上也定义了没有实际用处的数据抓取规则。
信息结构 demo_douban_group_list / group 从小组列表页面上抓取小组信息和超链接。在Bucket Editor上定义数据抓取规则,在Clue Editor上定义线索抓取规则,使用了Marker类线索,用于翻页。注意,选择菜单“配置”-〉“首选项”,在“线索定位”页,选择“任何一个”,这样采用就近原则,使定位抓取更准确。