python爬取小说网站并将数据存储在excel中
2018-01-12 本文已影响0人
june雨上
先导入需要的工具,定义爬虫类,初始化base_url,随机请求头,总页数,记录每一页的小说名和连接地址,以及后面需要用到的存入excel中的行数.
![](https://img.haomeiwen.com/i8587067/6415a1a4263220d3.png)
获取网页源代码,具体分析是否为第一页,因为分析url地址发现第一页的url与后面的url不一样,若是第一页便直接返后self.base_url,若不是便进行网址拼接,传入页码数
![](https://img.haomeiwen.com/i8587067/2f1b345c11fb6d87.png)
设置循环,若不能正常连接,便返回失败的信息及原因,并重新尝试连接.
![](https://img.haomeiwen.com/i8587067/625c2435a3ea1cf6.png)
解析网页源码,通过引入etree,将获取的网页源码,转化为xpath可以解析的格式,设置编码为utf-8格式
优先获取总页数,匹配到的为
![](https://img.haomeiwen.com/i8587067/234c6f875f01d53c.png)
所以需要通过正则表达式,匹配到总页数的数字,转化为整数类型
之后获取网页中的小说名称和详情地址的url,并将其保存到一个元组中,之后将元组存入,小说列表中
![](https://img.haomeiwen.com/i8587067/c20413b3f10b0c1c.png)
再定义一个解析详情的类,解析小说的详情信息
![](https://img.haomeiwen.com/i8587067/e5038e2f9efc6cec.png)
获取详情地址的网页源代码
![](https://img.haomeiwen.com/i8587067/43b36ef31b143d92.png)
根据xpath具体解析出小说的详细信息.清洗数据,并将解析出来的信息进行返回
![](https://img.haomeiwen.com/i8587067/b246cbaaf5d11fec.png)
返回上一个类中,编写将数据写入表格中的函数,实现解析详情类的实例对象,根据小说的详情地址进行解析
![](https://img.haomeiwen.com/i8587067/999c1047365d3529.png)
编写start函数,创建表格,写入数据,保存表格
![](https://img.haomeiwen.com/i8587067/e8a95152fce0cabb.png)
实现爬虫类的对象,调用start函数,开始进行爬虫
![](https://img.haomeiwen.com/i8587067/a0ea5a1cf67f4d9f.png)