一开始用的保存函数是将原来的文件内容替换掉,所以换了一种方法就可以追加数据内容了

两种方法的对比

1.追加数据的函数

old_file = xlrd.open_workbook('qishu.xls')
        new_file = copy(old_file)
        new_sheet = new_file.get_sheet(0)
        row = k  # 已存在文件中的数据行数
        for data in datas:
            for j in range(len(data)):
                new_sheet.write(row, j, data[j])
            row += 1
        new_file.save('qishu.xls')
        print('写入成功')

2.替换数据的函数

def data_write( qishu, datas):f = xlwt.Workbook()sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True)  # 创建sheet# 将数据写入第 i 行,第 j 列for data in datas:for j in range(len(data)):sheet1.write(i, j, data[j])i = i + 1f.save(qishu)  # 保存文件print('写入成功')
from urllib.error import HTTPError
from xlutils.copy import copy
import re, pymongo, requests, xlrd, xlwtclass DataTool(object):pattern_n = re.compile(r'\n', re.S)pattern_r = re.compile(r'&#12288', re.S)pattern_br = re.compile(r' ', re.S)pattern_b = re.compile(r'&nbsp;', re.S)def process_tuple_data(self, origin_tuple_data):content = re.sub(self.pattern_n, '', origin_tuple_data[4])content = re.sub(self.pattern_r, '', content)content = re.sub(self.pattern_br, '', content)content = re.sub(self.pattern_b, '', content)data = (origin_tuple_data[0], origin_tuple_data[1], origin_tuple_data[2], origin_tuple_data[3], content,origin_tuple_data[5])return dataclass QiShuSpider(object):client = pymongo.MongoClient('localhost')db = client['dbmovie']def __init__(self):self.headers = {'User-Agent': '*****************************************'}self.base_url = 'https://www.qisuu.la/soft/sort01/'self.tool = DataTool()def get_total_page_num(self):"""获取搜索结果的总页数:return:"""response = requests.get(self.base_url, headers=self.headers)html = response.texttotal_num_pattern = re.compile(r'<div class="tspage".*?页次:1/(.*?)&nbsp;', re.S)total_num = int(re.findall(total_num_pattern, html)[0])return total_numdef get_list_html(self, page, page_num):list_url = 'https://www.qisuu.la/soft/sort0{}/index_{}.html'.format(page, page_num)try:response = requests.get(list_url, headers=self.headers)html = response.textexcept HTTPError as e:print('列表页异常:url={}, error={}'.format(list_url, e))return None, Noneelse:return htmldef parse_list_html(self, html):if html:pattern = re.compile(r'<div class="s">(.*?)<br.*?>(.*?)<br>.*?<em class="lstar3">.*?<br>(.*?)</div>.*?<img .*?>(.*?)</a>.*?<div class="u">(.*?)</div>.*?<a.*?>(.*?)</a>',re.S)detail_urls = re.findall(pattern, html)for detail_url in detail_urls:new_detail = self.tool.process_tuple_data(detail_url)print(new_detail)return detail_urlselse:print('html源代码为None')return Nonedef data_write(self, k, qishu, datas):# 注意一定要先创建.xls文件,而且因为版本问题不能是xlsx文件old_file = xlrd.open_workbook('qishu.xls')new_file = copy(old_file)new_sheet = new_file.get_sheet(0)row = k  # 已存在文件中的数据行数for data in datas:for j in range(len(data)):new_sheet.write(row, j, data[j])row += 1new_file.save('qishu.xls')print('写入成功')def start_spider(self, i, x, num):print('正在请求第{}页'.format(num))list_html = self.get_list_html(x, num)if list_html:detail_urls = self.parse_list_html(list_html)self.data_write(i, 'qishu.xlsx', detail_urls)if __name__ == '__main__':obj = QiShuSpider()page = obj.get_total_page_num()i = 0for x in range(1, 12):for y in range(1, page):obj.start_spider(i, x, y)i = i + 15
运行结果:

爬取奇书网各类小说信息并保存到excel中相关推荐

  1. python爬取当当网的书籍信息并保存到csv文件

    python爬取当当网的书籍信息并保存到csv文件 依赖的库: requests #用来获取页面内容 BeautifulSoup #opython3不能安装BeautifulSoup,但可以安装Bea ...

  2. python爬取开源众包大厅多页任务信息保存到excel

    python爬取开源众包大厅多页任务信息保存到excel python版本:py3.5 希望能给大家一些帮助,欢迎加好友讨论微信:18301618273 源码走起: #!/usr/bin/env py ...

  3. python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中

    我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...

  4. 爬取前尘无忧python职位信息并保存到mongo数据库

    1.re实现 1 import re,os 2 import requests 3 from requests.exceptions import RequestException 4 5 MAX_P ...

  5. 使用requests、BeautifulSoup、线程池爬取艺龙酒店信息并保存到Excel中

    import requests import time, random, csv from fake_useragent import UserAgent from bs4 import Beauti ...

  6. python爬取推特图片_Python爬取Twitter特定主题的tweets并保存到csv中

    Step 0. 去Twitter development申请开发者账号,描述一下你要做的项目,想用twitter的数据干什么blabla的,网上有教程一步一步来就可以,大概三四天就会通过. Step ...

  7. 爬虫实战4:爬取猫眼电影排名Top100的详细数据保存到csv文件

    申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 猫眼电影 完整代码 运行结果 猫眼电影 完整代码 import time import requests import re i ...

  8. 爬取奇书网书籍信息并存入自动生成的xls表中(完善版)

    # -*- coding: utf-8 -*- __author__ = '木之易' __date__ = '2018/8/10 9:08' import re from random import ...

  9. 爬取奇书网书籍信息并存储在自动生成的slsx表中(正则初级)

    # -*- coding: utf-8 -*- __author__ = '木之易' __date__ = '2018/8/9 9:34'import re from urllib import re ...

最新文章

  1. 会话保持之iRule脚本
  2. 数据结构(C语言版) 第 八 章 排序 知识梳理 + 习题详解
  3. 从今天开始,我就要潜心研究软件开发技术了,不在被名利所困
  4. netapp更换硬盘
  5. js:进一步关闭(范围:下一个)
  6. elementui table 不显示表头_不懂就问 || 单晶XRD第二期课后答疑出炉啦!!
  7. SaaS业务的价值评估
  8. 获取SAP HR模块中员工照片及照片URL的方法
  9. SQL查询存在一个表而不在另一个表中的数据
  10. 一个包含嵌套递归数据结构的对象的排序实现
  11. MongoDB监控及报警
  12. java中static、final 和 static final之间的区别
  13. 法证先锋3中的Apps软件
  14. C语言实现栈的进栈与出栈、输出栈顶元素、元素个数、销毁栈
  15. UVa-679 Dropping Balls(二叉树的编号)
  16. 本质矩阵 基础矩阵 单应矩阵 (1)
  17. Linux中级之keepalived配置
  18. linux mysql数据库升级_Linux升级mysql到5.7
  19. python http通信接口开发
  20. qt调用vc编写库文件的方法

热门文章

  1. 2023-03-11 摄影构图小技巧汇总:点构图,线构图,面构图
  2. uniApp实现公农日历相互转换、公历、农历、阳历、阴历、calendar
  3. 372、解密POE交换机供电秘密,8芯网线断芯不再害怕
  4. 基于Java的远程监控系统
  5. 西门子锂电池项目,1500安全型PLC程序
  6. 新版标准日本语初级_第二十八课
  7. java手机通讯录格式转换_xml转换成vcf 魅族手机通讯录Contact.xml备份在flyme上的恢复(Java/C#实现xml转vCard)...
  8. 马哈鱼SQLFLow数据流生成介绍
  9. 这个双十一,小米手机销量为何不给力?
  10. html文本框判断,html的判断文本框内容举例