获取当当网的书籍分类目录

背景

之前单位新建了一个小图书馆,然后就有了这么一个需求,需要设置一下图书的分类与目录。要怎么定义呢,当然是百度咯。然后想到了卖书发家的当当网,打算把当当网上的所有图书分类全部抓下来提供给行政来作参考。

思路

打开当当网的图书页面http://book.dangdang.com/,图书分类就在网页的左边,开启F12看源代码。

dangdang_html

多看看就看出来规律了,关注红框部分。所有的分类其实都在<a>标签里,其中的href属性里的网址很有规律,去掉前面的域名之后,都以cp + 数字来命名,其中数字与数字之间用.来分割,代表一级目录和二级目录。

所以大体思路就是通过正则表达式先抓取href属性中含有cp开头的元素,然后找出所有第一节数字不同的元素,获取其text属性来当一级目录,然后把域名+cp+一级目录序号当做固定前缀来找对应的二级目录。

要注意就是去重还有一些删除一些网址不符合这个过滤的,以及所有的text记得用strip()来删除一下多余的空格和换行符号。

具体实现

按上面的思路,主要用requests bs4就差不多了,详细代码就参考github吧,https://github.com/keejo125/ 有更好的方法的也欢迎分享。