功能要求:
1、 网络爬虫,可以使用少量的3方库,但是最好能够用自己写的代码
2、 加分点:使用多线程,注意同步和锁
3、 将豆瓣(book.douban.com)里的关于“互联网,编程,算法”方面的书籍数据抓下来,并且显示评分最高的前100本数据(要求评价人数超过2000,不足2000的就提取前100)
4、 代码和爬下的结果(excel文件)一并放在github里,链接发给你们,再转给我。
5、 时间要求两天,即本周5早10点拿到结果。
大致想法:从初始链接进入,抓取所在页书籍,保存到excel文件中,然后进入下一页抓取,直至最后页,抓取完毕后,排序,排序规则是,评价人数超过2000人,评分从高至低,如果这样凑不齐100本,就从评价没超过2000的书籍中,按评分从高至低补充进队列,凑齐100,最后,将这100本书籍的信息输出到另一excel文件中
问题:
- 该如何拆分抓取过程,以便使用多线程
- 在哪里建立线程,线程里的run怎么写
- 如何确定是否抓取完全部书籍
- 进入初始链接后,使用多线程抓取所有书籍链接,保存在书籍url列表中
- 检测下一页是否存在,如果找到了就去下一页,重复第一步,如果没找到就开始下一步
- 使用多线程从列表中取出链接,向列表中每一本书籍页面发起请求,获取页面信息,抓取书籍信息,保存在书籍info队列中
- 得到全部书籍info后,排序
- 排序后,取前一百输出到excel文件
DoubanBook的属性:作者s,出版社s,副标题s,原作名s,译者s,出版年s,页数s,定价s,装帧s,丛书s,ISBNs,评分d,评价人数i