爬取奇书网各类小说信息并保存到excel中
一开始用的保存函数是将原来的文件内容替换掉,所以换了一种方法就可以追加数据内容了
两种方法的对比
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' ', re.S)pattern_br = re.compile(r' ', re.S)pattern_b = re.compile(r' ', 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/(.*?) ', 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中相关推荐
- python爬取当当网的书籍信息并保存到csv文件
python爬取当当网的书籍信息并保存到csv文件 依赖的库: requests #用来获取页面内容 BeautifulSoup #opython3不能安装BeautifulSoup,但可以安装Bea ...
- python爬取开源众包大厅多页任务信息保存到excel
python爬取开源众包大厅多页任务信息保存到excel python版本:py3.5 希望能给大家一些帮助,欢迎加好友讨论微信:18301618273 源码走起: #!/usr/bin/env py ...
- python爬虫爬取豆瓣电影排行榜并通过pandas保存到Excel文件当中
我们的需求是利用python爬虫爬取豆瓣电影排行榜数据,并将数据通过pandas保存到Excel文件当中(步骤详细) 我们用到的第三方库如下所示: import requests import pan ...
- 爬取前尘无忧python职位信息并保存到mongo数据库
1.re实现 1 import re,os 2 import requests 3 from requests.exceptions import RequestException 4 5 MAX_P ...
- 使用requests、BeautifulSoup、线程池爬取艺龙酒店信息并保存到Excel中
import requests import time, random, csv from fake_useragent import UserAgent from bs4 import Beauti ...
- python爬取推特图片_Python爬取Twitter特定主题的tweets并保存到csv中
Step 0. 去Twitter development申请开发者账号,描述一下你要做的项目,想用twitter的数据干什么blabla的,网上有教程一步一步来就可以,大概三四天就会通过. Step ...
- 爬虫实战4:爬取猫眼电影排名Top100的详细数据保存到csv文件
申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 猫眼电影 完整代码 运行结果 猫眼电影 完整代码 import time import requests import re i ...
- 爬取奇书网书籍信息并存入自动生成的xls表中(完善版)
# -*- coding: utf-8 -*- __author__ = '木之易' __date__ = '2018/8/10 9:08' import re from random import ...
- 爬取奇书网书籍信息并存储在自动生成的slsx表中(正则初级)
# -*- coding: utf-8 -*- __author__ = '木之易' __date__ = '2018/8/9 9:34'import re from urllib import re ...
最新文章
- 会话保持之iRule脚本
- 数据结构(C语言版) 第 八 章 排序 知识梳理 + 习题详解
- 从今天开始,我就要潜心研究软件开发技术了,不在被名利所困
- netapp更换硬盘
- js:进一步关闭(范围:下一个)
- elementui table 不显示表头_不懂就问 || 单晶XRD第二期课后答疑出炉啦!!
- SaaS业务的价值评估
- 获取SAP HR模块中员工照片及照片URL的方法
- SQL查询存在一个表而不在另一个表中的数据
- 一个包含嵌套递归数据结构的对象的排序实现
- MongoDB监控及报警
- java中static、final 和 static final之间的区别
- 法证先锋3中的Apps软件
- C语言实现栈的进栈与出栈、输出栈顶元素、元素个数、销毁栈
- UVa-679 Dropping Balls(二叉树的编号)
- 本质矩阵 基础矩阵 单应矩阵 (1)
- Linux中级之keepalived配置
- linux mysql数据库升级_Linux升级mysql到5.7
- python http通信接口开发
- qt调用vc编写库文件的方法
热门文章
- 2023-03-11 摄影构图小技巧汇总:点构图,线构图,面构图
- uniApp实现公农日历相互转换、公历、农历、阳历、阴历、calendar
- 372、解密POE交换机供电秘密,8芯网线断芯不再害怕
- 基于Java的远程监控系统
- 西门子锂电池项目,1500安全型PLC程序
- 新版标准日本语初级_第二十八课
- java手机通讯录格式转换_xml转换成vcf 魅族手机通讯录Contact.xml备份在flyme上的恢复(Java/C#实现xml转vCard)...
- 马哈鱼SQLFLow数据流生成介绍
- 这个双十一,小米手机销量为何不给力?
- html文本框判断,html的判断文本框内容举例