本人30岁大叔一枚,学习爬虫完全兴趣使然。
在此记录一下自己写的第一个爬虫项目,后面还会继续改进,加上多线程,让爬虫运行快起来
目标网站豆瓣图书标签: 小说book.douban.com
想要获取的数据:书名、作者、评分、评论人数
保存格式:Excel
先说一下我自己理解的爬虫完成步骤
一般的小爬虫不用想太多,第一步,分析网页,查看数据是不是在网页源码里面,如果不是就抓包(专业人士好像是说什么动态加载静态加载吧),第二步整理一下思路,先获取什么在获取什么怎么保存,大体有个数,最后才是撸代码改bug
话不多说直接上源码,然后说说碰到的问题和解决方案
先说一下自己用到的库,requests和lxml这两个就不用多说了,time和random主要是为了加入随机延时,避免爬虫被封,也可以减小对服务器的压力
另外start和end两个时间是为了计算总耗时,用来方便后面加入多线程的时候对比运行速度
这个输出方便在运行过程中如果出错及时找到是第几页的错误,方便修改程序
说下碰到的问题
1、评分一开始的代码是这样的
后来运行到第16页出现了超出列表范围的错误,发现第16页有本书没有评分
所以就改成了现在的样子
2、保存完之后发现获取到的数据只有1000,可是按照豆瓣给出的页数381页,每页20本书,应该有7620条,然后我就不开心的看了51页的数据发现是这样的
早知道就不用自己写个获取页数的代码了,直接for i in range(0,1000,20)就搞定领,费这个劲
后面加上多线程测试一下,到时候在更新