Python资源共享群:484031800

思路:

step 1 :请求《剑来》小说站点,获取两个东西小说名称——在Python程序同目录下,以小说名称创建文件夹

每章小说的链接地址

step 1 对应代码中的 get_url()函数 ,该函数还包括用于加速爬虫的 多线程 代码,经多次测试,爬完整本小说645章,大概需要5分钟

(最后一次测试总计用时:288.94552659988403s,具体时长视网络状况而定)

step 2 :遍历(for循环)step 1 得到的所有链接,同样获取两个东西小说章节名称——在 step 1 创建的文件夹下,以小说章节名称创建.txt文件

小说章节内容——分章节保存,便于查看

step 2 对应代码中的 download()函数 ,该函数需要两个参数:一个是step 1 得到的小说章节链接url;一个是step 1创建的文件夹名称name

工具:Pycharm 用到的第三方库有:requests、pyquery、threading、os、time(非必需,用于记录程序运行总时间)

# -*- coding: UTF-8 -*-

import requests

from pyquery import PyQuery as pq

import threading

import time

import os

# 简单的防反爬处理:修改请求头内容

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',

'Cookie': 'Hm_lvt_acb6f2bc2dcbdaa4ceeed2289f1d0283=1562677085,1562680745,1562916025; Hm_lpvt_acb6f2bc2dcbdaa4ceeed2289f1d0283=1562922723',

'Host': 'www.jianlaixiaoshuo.com',

'Referer': 'http://www.jianlaixiaoshuo.com/',

}

def get_url():

response = requests.get("http://www.jianlaixiaoshuo.com/", headers=headers)

response.encoding = response.apparent_encoding # 防止响应体出现乱码

html = pq(response.text)

name = html('body > div:nth-child(2) > div > div > div > h1 > a').text() # 获取小说名称

if os.path.exists(name) == False: # 在Python程序同目录下,以小说名称创建文件夹

os.mkdir(name)

links = html('body > div:nth-child(2) > div > dl > dd > a') # 获取每章小说的链接地址

# 构造多线程,加速爬虫

threads = [] # 多线程列表

for link in links.items():

url = 'http://www.jianlaixiaoshuo.com' + link.attr.href # 拼接出完整链接

t = threading.Thread(target=download, args=(url, name)) # 每个链接设置一个线程

threads.append(t) # 将创建的线程依次加入到多线程列表

for i in threads:

i.start() # 启动线程

for i in threads:

i.join() # 阻塞当前上下文环境的线程,直到调用此方法的线程终止

def download(url, name):

# 获取每章小说的标题和内容

response = requests.get(url, headers=headers)

response.encoding = response.apparent_encoding # 防止响应体出现乱码

html = pq(response.text)

title = html('#BookCon > h1').text() # 章节名称

content = html('#BookText').text() # 章节内容

file_name = name + '\\' + title + '.txt' # 以章节名称创建.txt文件,分章节保存小说内容

print('正在保存小说文件:' + file_name) # 提示爬取进度

with open(file_name, "w", encoding='utf-8') as f:

f.write(content)

def main(): # 主函数

start_time = time.time() # 程序开始运行的时间

get_url()

print("总计用时:%s" % (time.time()-start_time))

if __name__ == '__main__':

main()

用python爬小说_5分钟带你用Python爬完《剑来》小说(附完整代码)!相关推荐

  1. python 占位符_5分钟让你用Python作出最精美的Powerpoint

    介绍 PowerPoint在大多数商业环境中被广泛使用.本文向您展示如何使用python通过使用python自动创建PowerPoint幻灯片. 5分钟让你用Python作出最精美的Powerpoin ...

  2. 这是我见过最好的Python教程:十分钟带你认识Python

    这篇文章主要介绍了简洁的十分钟Python入门教程,Python语言本身的简洁也使得网络上各种Python快门入门教程有着很高的人气,本文是国内此类其中的一篇,需要的朋友可以参考下 [简介] Pyth ...

  3. python图像分类实战: Keras 实现 12500 张猫狗图像的精准分类 附完整代码+数据 可直接运行 毕业设计

  4. 太好了,一分钟带你分清Python的模块、库、包有什么联系和区别?

    Python的流行主要依赖于其有众多功能强大的库(Library),Python自带的标准库(Standard Library)可以满足大多数的基础需求,除了函数库以外,模块(Module)和包(Pa ...

  5. 十三、写了两年多Python文章的我,带你走进Python数据分析

    @Author : By Runsen @Date : 2020/5/13 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...

  6. Python数据可视化:2018年北上广深空气质量分析(附完整代码)

    ♚ 法纳斯特,Python爱好者,喜欢爬虫,数据分析以及可视化. 就在这周偶然看到一个学弟吐槽天津的空气,不禁想起那段厚德载雾,自强不吸的日子. 无图无真相,下图为证. 左边的图是去年2月份的时候,这 ...

  7. 【Python】python初学者应该知道与其他语言差异化的高效编程技巧(附测试代码+详细注释)

    目录 1. 交换变量 2. 集合去重 3. 列表推导.集合推导和字典推导 4. 统计字符串中各个字符出现的次数 5.优雅地打印JSON数据 6.行内的if语句 6. 符合正常逻辑的数值比较 7. 田忌 ...

  8. 想要快速爬取整站图片?速进(附完整代码)

      大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  9. python代码手机壁纸_Python制作微信好友背景墙教程(附完整代码)

    引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这里作了模糊处理. 是不是很炫,而且这还是独一无二的,毕竟 ...

最新文章

  1. step如何打开服务器项目,STEP7项目打开及删除
  2. 干货丨手把手带你玩转机器学习和深度学习
  3. linux开发 stc_Linux下构建stc51单片机开发环境
  4. Topshelf:一款非常好用的 Windows 服务开发框架 转发https://www.cnblogs.com/happyframework/p/3601995.html...
  5. MySQL迁移过程中遇到的问题
  6. MySQL查看及修改字段的字符集
  7. [html] 如何给input的右上角加个清除的按钮?
  8. Java native方法availableProcessors()获取处理器数量的底层C++实现
  9. 前端程序员怎么面试找工作?前端面试技巧分享
  10. 【恋上数据结构】图代码实现、最小生成树(Prim、Kruskal)、最短路径(Dijkstra、Bellman-Ford、Floyd)
  11. [面试系列]牛客网前端社招面试
  12. Win10笔记本电脑怎么直接重置初始化
  13. Window部分软件图标显示不正常
  14. 【数据结构】【王道】【线性表】单链表的实现及基本操作(带头结点)(可直接运行)
  15. Computer Shader的理解记录
  16. js将html转换成string
  17. antd menu 样式修改
  18. DPM目标检测算法(毕业论文节选)
  19. 【系统架构师】软件架构设计——2需求与质量属性
  20. 服务器系统盘在哪里,云服务器本地磁盘在哪里

热门文章

  1. php 响应时间计算,计算每个请求的平均响应时间
  2. 6.Java 面试题整理(XML)
  3. Java案例:输出指定范围内纯素数个数
  4. 大数据学习笔记53:Flume Sink Processors(Flume接收器处理器)
  5. 【codevs2098】【Tyvj1625】化工厂装箱员,煞笔的人打煞笔的DP
  6. 【英语学习】【English L06】U06 Banking L6 Do you use online banking?
  7. 【英语学习】【WOTD】two-bit 释义/词源/示例
  8. C++程序设计【一】之 C++ 语言简介
  9. Stata和Matlab联合处理金融数据
  10. 完整html生日祝福代码_孩子生日发朋友圈祝福语(一)!