作者:梅破知春近,准数据分析师
个人简书专栏:放翁lcf https://www.jianshu.com/u/ea4b6b1d2c22
平时看到的豆瓣爬虫基本都是爬豆瓣top100电影、某电影热评、top100图书、热门图书等,最近遇到的一个需求是根据一堆书名的列表(或者书名Excel文件)爬取对应的书目信息,也就是豆瓣图书页面上的出版社、出版时间、ISBN、定价、评分、评分人数等信息,再整合到pandas里进行处理,最后可以进行数据分析。
最近整理书目的时候需要根据几百本书的书名整理出对应的出版社、出版时间、ISBN、评分等属性,书单Excel如下图1中的表。批量处理肯定是用爬虫啦,查了一下没有发现相似的文章,并且自己操作时也遇到了比较有趣的问题,于是把自己的操作思路和过程整理成本文。
图1,书单数据部分截图
页面分析
首先分析豆瓣图书首页:book.douban.com,直接搜索书名时可以看到搜索参数是写在url上的,于是想着直接用https://book.douban.com/subject_search?search_text={0}&cat=1001'.format('书名')
,直接改search_text参数,在这个页面按F12调出控制台,失望的是这个url返回的html是不含数据的,如图2。关键是找了一段时间还是没找到异步返回的数据json(如果有人找到了豆瓣subject_search?search_text={0}&cat=1001这类页面的书籍数据的位置欢迎告诉我呀),这时候考虑用Selenium或者查其他接口。
图2,基于搜索url的html截图
json分析
注意到豆瓣图书的搜索页面有一个搜索提示,于是在控制台查Network发现搜索提示返回的直接是一个json,例如查“未来简史”,结果如下:</