用PYTHON爬虫简单爬取网络小说。

这里是17K小说网上,随便找了一本小说,名字是《千万大奖》。

里面主要是三个函数:

1、get_download_url() 用于获取该小说的所有章节的URL。

分析了该小说的目录页http://www.17k.com/list/2819620.html的HTML源码,发现其目录是包含在Volume里的A标签合集。所以就提取出了URLS列表。

2、get_contents(target) 用于获取小说指定章节的正文内容

分析了小说中第一章节的页面http://www.17k.com/chapter/2819620/34988369.html,发现其正文内容包含在P标签中,正文标题包含在H1标签中,经过对换行等处理,得到正文内容。传入参数是上一函数得到的URL。

3、writer(name, path, text) 用于将得到的正文内容和章节标题写入到千万大奖.txt

理论上,该简单爬虫可以爬取该网站的任意小说。from bs4 import BeautifulSoup

import requests, sys

'''

遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!

'''

target='http://www.17k.com/list/2819620.html'

server='http://www.17k.com'

urls=[]

def get_download_url():

req = requests.get(url = target)

html = req.text

div_bf = BeautifulSoup(html,'lxml')

div = div_bf.find_all('dl', class_ = 'Volume')

a_bf = BeautifulSoup(str(div[0]),'lxml')

a = a_bf.find_all('a')

for each in a[1:]:

urls.append(server + each.get('href'))

def get_contents(target):

req = requests.get(url = target)

html = req.text

bf = BeautifulSoup(html,'lxml')

title=bf.find_all('div', class_ = 'readAreaBox content')

title_bf = BeautifulSoup(str(title[0]),'lxml')

title = title_bf.find_all('h1')

title=str(title[0]).replace('

','')

title=str(title).replace('','')

title=str(title).replace(' ','')

title=str(title).replace('\n','')

texts = bf.find_all('div', class_ = 'p')

texts=str(texts).replace('
','\n')

texts=texts[:texts.index('本书首发来自17K小说网,第一时间看正版内容!')]

texts=str(texts).replace('                                          ','')

return title,str(texts[len('[

'):])

def writer(name, path, text):

write_flag = True

with open(path, 'a', encoding='utf-8') as f:

f.write(name + '\n')

f.writelines(text)

f.write('\n')

#title,content=get_contents(target)

#print(title,content)

#writer(title,title+".txt",content)

get_download_url()

#print(urls)

i=1

for url in urls:

title,content=get_contents(url)

writer(title,"千万大奖.txt",content)

print(str(int(i/len(urls)*100))+"%")

i+=1

python爬虫下载小说_用PYTHON爬虫简单爬取网络小说相关推荐

  1. 用PYTHON爬虫简单爬取网络小说

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  2. Python3网络爬虫,简单爬取网络小说并下载

    相信我们常常会有想看的小说,但是不能下载,导致无法在没网的环境下观看..下面将解一下如何用python3爬取网络小说. 本文主要是用于学习,希望大家支持正版. 首先我们需要两个包,我们分别是reque ...

  3. python爬取小说写入txt_Python爬虫练习 爬取网络小说保存到txt

    利用python爬虫爬取网络小说保存到txt,熟悉利用python抓取文本数据的方法. 选取其中某一章,检查网页,可以找到这本小说所有章节的链接和名称. 写出xpath表达式提取出href里的内容:/ ...

  4. Python爬虫练习 爬取网络小说保存到txt

    原文链接:https://yetingyun.blog.csdn.net/article/details/107916769 创作不易,未经作者允许,禁止转载,更勿做其他用途,违者必究. 利用 Pyt ...

  5. Python爬虫之爬取网络小说并在本地保存为txt文件

    Python爬虫之爬取网络小说并在本地保存为txt文件 注:本文使用软件为Sublime Text,浏览器为谷歌浏览器 (新手小白第一次写,写得不好请见谅) **1.**首先找到想要爬取的小说章节目录 ...

  6. python爬虫爬取网络小说

    近日沉迷网络小说不能自拔的某人让我趁着网站限免把她想看的小说爬取下来,免得到时候又要付费看书,本来对于这种又要看正版又想占便宜不给钱的行为的我是深恶痛绝的,然而...为了小命我还是做一下吧.     ...

  7. python爬取小说基本信息_python实战项目:爬取某小说网

    项目文档: 项目简介: 爬取某小说网首页中的全部小说,并储存到数据库中 项目版本 :python2.7.12 项目源码: 源码已上传 github: 源码github 项目总览: 1. 爬取小说首页中 ...

  8. 完全小白篇-使用Python爬取网络小说

    完全小白篇-使用Python爬取网络小说 一.找一个你要爬取的小说 二.分析网页 网页的展示方式 需要用到的库文件 三.向网站发送请求 四.正则提取 五.跳转的逻辑 六.后续处理 七.保存信息进入do ...

  9. 【网络爬虫】爬取网络小说并保存为txt

    爬虫爬取网络小说并保存为txt文件 最近突然想看小说,但是苦于无法下载为txt,于是秉持着"自己动手,丰衣足食"的原则,自己写了一个爬虫,仅供参考~ 这里就以火星引力的<逆天 ...

最新文章

  1. 最常拿来面试的算法与数据结构,不是递归,不是动态规划,看下这
  2. boost asio 应用方法学(二)——深入框架
  3. Python基础-re模块
  4. 初步认识Volatile-MESI优化带来的可见性问题
  5. Echart 5.0+版本报错Error in data(): “TypeError: Cannot read properties of undefined (reading ‘graphic‘)“
  6. java nature_Java Nature.nsf方法代码示例
  7. Simple-Faster-RCNN源码学习笔记
  8. 设计模式----2(简单工厂模式的概念,简单工厂模式的实现,简单工厂模式的优缺点)
  9. SpringBoot 自带工具类~AopUtils
  10. 通过EPPlus导出Excel文件
  11. MCGS触摸屏通过MODBUS通讯速度控制台达B2伺服参数,有触摸屏源程序和伺服设定参数,实际的项目应用的。
  12. vscode统计代码行数
  13. 诺基亚n1平板电脑刷机教程_诺基亚n1平板电脑刷机教程_诺基亚N1 完整包线刷升级或救砖教程(不分台版;国行)......
  14. 日期操作工具2:DateUtil
  15. python 减法函数_python之函数
  16. 微信小程序 指纹识别
  17. 麻将 java_怎么用java做麻将游戏
  18. 微软C++团队将出席ACCU 2021
  19. 数据挖掘的过程是什么?通俗易懂
  20. C# 监控笔记本/平板的充电/电源状态

热门文章

  1. java基础--java中HashMap原理
  2. 寒假第18页作业jQuery
  3. 申宝正规股票煤炭股超跌反弹
  4. DNSChanger卷土重来,家用路由器当心了
  5. Android Studio中layout_gravity与gravity
  6. SMS平台发短信的代码
  7. 【简正波作业】——深度模态函数提取
  8. fastdfs errno: 99, error info: Cannot assign requested address
  9. intel服务器e5系列,以后都没有Xeon E5/E7了,Intel正式发布Xeon Scalable系列处理器
  10. EmWin学习课堂_小白EmWin_EmWin快速入门_EmWin用Button控件显示文本