网络爬虫&起点中文网完本榜500部小说
# 网络爬虫爬取起点中文网完本榜小说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部小说的更多相关文章
- 爬虫简单之二---使用进程爬取起点中文网的六万多也页小说的名字,作者,等一些基本信息,并存入csv中
爬虫简单之二---使用进程爬取起点中文网的六万多也页小说的名字,作者,等一些基本信息,并存入csv中 准备使用的环境和库Python3.6 + requests + bs4 + csv + multi ...
- 什么是网络爬虫(Spider) 程序
Spider又叫WebCrawler或者Robot,是一个沿着链接漫游Web 文档集合的程序.它一般驻留在服务器上,通过给定的一些URL,利用HTTP等标准协议读取相应文档,然后以文档中包括的所有未访 ...
- larbin是一种开源的网络爬虫/网络蜘
larbin是一种开源的网络爬虫/网络蜘蛛,由法国的年轻人 Sébastien Ailleret独立开发.larbin目的是能够跟踪页面的url进行扩展的抓取,最后为搜索引擎提供广泛的数据来源.Lar ...
- 从0到1学习node之简易的网络爬虫
本文地址: http://www.xiabingbao.com/node/2017/01/19/node-spider.html 我们这节的目标是学习完本节课程后,能进行网页简单的分析与抓取,对抓取到 ...
- 用Python写网络爬虫 第二版
书籍介绍 书名:用 Python 写网络爬虫(第2版) 内容简介:本书包括网络爬虫的定义以及如何爬取网站,如何使用几种库从网页中抽取数据,如何通过缓存结果避免重复下载的问题,如何通过并行下载来加速数据 ...
- Java网络爬虫笔记
Java网络爬虫笔记 HttpClient来代替浏览器发起请求. select找到的是元素,也就是elements,你想要获取具体某一个属性的值,还是要用attr("")方法.标签 ...
- 从零开始学Python网络爬虫PDF高清完整版免费下载|百度网盘
百度网盘:从零开始学Python网络爬虫PDF高清完整版免费下载 提取码:wy36 目录 前言第1章 Python零基础语法入门 11.1 Python与PyCharm安装 11.1.1 Python ...
- python网络爬虫实战PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:vg1y python网络爬虫实战帮助读者学习Python并开发出符合自己要求的网络爬虫.网络爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取互联网信息的程序或者脚 ...
- NodeJs 入门到放弃 — 常用模块及网络爬虫(二)
码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14473101.html 目录 码文不易啊,转载请带上本文链接呀,感谢感谢 https ...
随机推荐
- ASP.NET页面之间传值的方式之Cookie(个人整理)
Cookie Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序 ...
- java基础语法-内部类与匿名内部类
1.成员内部类(声明在类内部&&方法之外) class Person{ String name = "韩梅梅"; int age; class Bird{ Stri ...
- mysql 查询前几条数据
limit是mysql的语法select * from table limit m,n其中m是指记录开始的index,从0开始,表示第一条记录n是指从第m+1条开始,取n条.select * from ...
- java问题排查之Load CPU很高
1首先 找到对应的java进程id ps -aux | grep java 这个命令可以找到 2.接下来就是查找比较耗CPU的线程id top -H -p pid 这里可以观察出来耗时最多的几个进程中 ...
- Linux的DNS配置3-多域
1.实验目的 现要求在两个局域网中分别搭建各自的DNS服务器,并通过相关设置,使得两个DNS服务器能相互解析 2.实验拓扑 3.实验分析 要使两个不同网络的DNS服务器能相互访问,需要额外假设一台DN ...
- js时间相关
let date = new Date(); date.getYear(); //获取当前年份(2位) date.getFullYear(); //获取完整的年份(4位) date.getMonth( ...
- Powershell获取硬件信息
1.获取系统的BIOS的信息: Get-WMIObject -Class Win32_BIOS 2.获取内存信息: Get-WMIObject -Class Win32_PhysicalMemory ...
- Extundelete 数据恢复
Extundelete 数据恢复 “rm -rf /*” 是我们经常使用的命令,操作不慎全盘接蹦,从删库到跑路,身为过来人的我们都经历过rm带来的痛苦. 不要慌,当我们有了Extundelete就可以 ...
- chrome浏览器导出文件提示病毒扫描失败
转自https://zhidao.baidu.com/question/758059392558639324.html 1.windows+R,打开运行 2.输入regedit.exe,确定,打开注册 ...
- 分布式事物(同样适用于dubbo事务等分布式事务)