# 网络爬虫爬取起点中文网完本榜小说500部
# 四步,分步操作,不易出错
# 所需要获取的数据:书名 、作者、网址、类型、主要介绍、作品信息 from urllib.request import * #导入所有的request,urllib相当于一个文件夹,用到它里面的方法request
from lxml.etree import * #调用包
import pickle #
import time
import pickle,fake_useragent
# 第一步,将25页起点完本榜的每部小说的名字和相对应的链接写入txt文件中 # arr=[]
# url0='https://www.qidian.com/rank/fin?page='
# urls=[ url0+str(i) for i in range(1,26)]
#
#
# def aa(link):
# time.sleep(1)
# print("正在爬取:%s"%link) #提示信息可以实时看到爬取信息
# with urlopen(link) as html: # 在html中打开爬取的数据
# text = html.read().decode("utf-8")# 读取并且解码数据
# doc =HTML(text) #解析html etree这是lxml中的方法
# url=doc.xpath("//div[@class='book-img-text']/ul/li/div[@class='book-mid-info']/h4/a/@href")
# name=doc.xpath("//div[@class='book-img-text']/ul/li/div[@class='book-mid-info']/h4/a/text()")
#
# arr.append(list(zip(name,url))) #用append方法将爬取数据添加到数组arr
# for link in urls:
# aa(link)
# print(arr)
# with open("完本榜.txt",'wb') as f: #打开本地文件“完本榜.txt”以写的方式,二进制
# pickle.dump(arr,f) #pickle包 # 第二步,将每部小说链接内的作者、类型、主要介绍、作品信息分别获取到并写入txt1文件中 # with open('完本榜.txt','rb') as f:
# arr1 = pickle.load(f)
# lists = []
# for arr2 in arr1:
# for name,url in arr2:
# url='https:'+url
# lists.append(url)
#
# print(lists)
# #获取代理开始(让网站不认为你在爬取数据)
# ua = fake_useragent.UserAgent()
# header = {
# 'User-Agent':ua.random
# }
# list2 = []
# def spider(url):
# time.sleep(1)
# # print("正在爬取:%s"%url) #提示信息可以实时看到爬取信息
# req = Request(url,headers=header)
# with urlopen(req) as html:
# text = html.read().decode()
# doc =HTML(text)
# # 作者
# pl1 = doc.xpath("//span/a[@class='writer']/text()")
# # 类型
# # print(pl1)
#
# pl2 = doc.xpath("//p/a[@class='red']/text()")
# # 主要介绍
# # print(pl2)
# #
# pl3 = doc.xpath("//p[@class='intro']/text()")
# # 作品信息
# # print(pl3)
# #
# pl4 = doc.xpath("//div[@class='book-info-detail']/div[@class='book-intro']/p/text()")
# # print(pl4)
#
# list2.append(list(zip(pl1, pl2,pl3,pl4))) # 用append方法将爬取数据添加到数组lists
# print(list2)
# for url in lists:
# mm=spider(url)
# with open("完本榜1.txt",'wb') as f: #打开本地文件“完本榜.txt”以写的方式,二进制
# pickle.dump(list2,f) #pickle包 # 第三步,将txt文件写入表格xls中 # import xlwt#(写入)
# wb=xlwt.Workbook() #创建表格对象
# ws=wb.add_sheet("完本榜")
# with open("完本榜.txt",'rb') as f:
# arr6=pickle.load(f)
# index=0
# for arr7 in arr6:
# for name,url in arr7:
# #序号
# ws.write(index,0,index+1)
# # title
# ws.write(index,1,name)
# ws.write(index,2,url)
# index+=1
# wb.save("完本榜.xls") # 第四步 将txt文件写入xls1中
import xlwt#(写入)
wb=xlwt.Workbook() #创建表格对象
ws=wb.add_sheet("完本榜1")
with open("完本榜1.txt",'rb') as f:
arr6=pickle.load(f)
index=0
for arr7 in arr6:
for pl1,pl2,pl3,pl4 in arr7:
#序号
# ws.write(index,0,index+1)
# title
ws.write(index,3,pl1)
ws.write(index,4,pl2)
ws.write(index,5,pl3)
ws.write(index,6,pl4)
index+=1
wb.save("完本榜1.xls")

网络爬虫&起点中文网完本榜500部小说的更多相关文章

  1. 爬虫简单之二---使用进程爬取起点中文网的六万多也页小说的名字,作者,等一些基本信息,并存入csv中

    爬虫简单之二---使用进程爬取起点中文网的六万多也页小说的名字,作者,等一些基本信息,并存入csv中 准备使用的环境和库Python3.6 + requests + bs4 + csv + multi ...

  2. 什么是网络爬虫(Spider) 程序

    Spider又叫WebCrawler或者Robot,是一个沿着链接漫游Web 文档集合的程序.它一般驻留在服务器上,通过给定的一些URL,利用HTTP等标准协议读取相应文档,然后以文档中包括的所有未访 ...

  3. larbin是一种开源的网络爬虫/网络蜘

    larbin是一种开源的网络爬虫/网络蜘蛛,由法国的年轻人 Sébastien Ailleret独立开发.larbin目的是能够跟踪页面的url进行扩展的抓取,最后为搜索引擎提供广泛的数据来源.Lar ...

  4. 从0到1学习node之简易的网络爬虫

    本文地址: http://www.xiabingbao.com/node/2017/01/19/node-spider.html 我们这节的目标是学习完本节课程后,能进行网页简单的分析与抓取,对抓取到 ...

  5. 用Python写网络爬虫 第二版

    书籍介绍 书名:用 Python 写网络爬虫(第2版) 内容简介:本书包括网络爬虫的定义以及如何爬取网站,如何使用几种库从网页中抽取数据,如何通过缓存结果避免重复下载的问题,如何通过并行下载来加速数据 ...

  6. Java网络爬虫笔记

    Java网络爬虫笔记 HttpClient来代替浏览器发起请求. select找到的是元素,也就是elements,你想要获取具体某一个属性的值,还是要用attr("")方法.标签 ...

  7. 从零开始学Python网络爬虫PDF高清完整版免费下载|百度网盘

    百度网盘:从零开始学Python网络爬虫PDF高清完整版免费下载 提取码:wy36 目录 前言第1章 Python零基础语法入门 11.1 Python与PyCharm安装 11.1.1 Python ...

  8. python网络爬虫实战PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书

    点击获取提取码:vg1y python网络爬虫实战帮助读者学习Python并开发出符合自己要求的网络爬虫.网络爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取互联网信息的程序或者脚 ...

  9. NodeJs 入门到放弃 — 常用模块及网络爬虫(二)

    码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14473101.html 目录 码文不易啊,转载请带上本文链接呀,感谢感谢 https ...

随机推荐

  1. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  2. Log4j2 日志级别

    Log4j2日志级别 级别 在log4j2中, 共有8个级别,按照从低到高为:ALL < TRACE < DEBUG < INFO < WARN < ERROR < ...

  3. DataGridView上下键事件获取到的是上次停留行的内容

    DataGridView上下键事件 在DataGridView中,通过上下键将选中行的内容返回, 问题: 通过上边的方法总是获取到上次停留行的内容,不是当前选中行的内容. winform的项目,使用C ...

  4. AI时代学习新的技术,方向为计算机视觉--欢迎来我的简书blog拔草

    2017-09-01 19:29:33 简书blog: https://www.jianshu.com/u/973c8c406de7

  5. 【vue】清理代码

    // 一次性将这个日期选择器附加到一个输入框上 // 它会被挂载到 DOM 上. mounted: function () { // Pikaday 是一个第三方日期选择器的库 this.picker ...

  6. tomcat服务器1

    1.在访问servlet时,一定要引入servlet-api.jar包 此包在Tomcat解压文件夹的lib子目录中,复制此包到Eclipse中的项目中WEB-INF的lib中,再右击Build Pa ...

  7. git cherry-pick 的使用

    之前和同事在不同的分支开发一个功能的不同模块,在自己分支有用到同事分支的一些实现,被老大告诉用git cherry-pick来搞定! git cherry-pick  能够把另一个分支的一个或多个提交 ...

  8. 【js】版本号对比处理方案

    今天在处理一个bug问题,适配客户端版本:若版本号未达到,则不可运行该功能,若达到则可运行. 版本号规则如下:(一般统一为2个点,其他的是数字,版本号从高位到低位,首位越大则越大,首位相同则对比下一位 ...

  9. Eclipse如何导入maven项目,以及配置maven

    Eclipse如何导入maven项目,以及配置maven 一.准备工作 1. eclipse,安装了eclipse 2. 一个需要导入的maven项目 3. 下载好了的压缩包apache-maven- ...

  10. Bugku-CTF之flag.php(点了login咋没反应)

    Day20 flag.php 地址:http://123.206.87.240:8002/flagphp/   点了login咋没反应 提示:hint