最近发现一个手机在线看小说的网站,里面没有任何广告,先上链接地址:

https://m.lread.net/

然后在线看起来也是挺累,还是下载txt用掌阅书城app看单机小说有趣,想办法爬下来。

爬个小说本来就不是什么难受,现在问题是这个网站的小说做了页面做了分段处理,一个网页是没法拿到整篇小说的源码的。人家把一篇小说分成多个html页面储存了,而且你还得不到这篇小说的所有html页面,主页面上还没有提示。

不过,经过一通html分析,写了几段正则表达式,还是成功把小说爬了下来,就是单线程,非分布式,速度很慢,将就用吧

代码发上来以供参考,重点是网页结构分析,分析懂了才知道怎么爬。

#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
# File  : 爬小说.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Date  : 2019/11/13import requests
import redef getCode(url): #获取主页源码headers = {"Accept": "*/*","Accept-Encoding": "gzip, deflate, br","Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3","Cookie": "l=AurqcPuigwQdnQv7WvAfCoR1OlrRQW7h; isg=BHp6mNB79CHqYXpVEiRteXyyyKNcg8YEwjgLqoRvCI3ddxqxbLtOFUBGwwOrZ3ad; thw=cn; cna=VsJQERAypn0CATrXFEIahcz8; t=0eed37629fe7ef5ec0b8ecb6cd3a3577; tracknick=tb830309_22; _cc_=UtASsssmfA%3D%3D; tg=0; ubn=p; ucn=unzbyun; x=e%3D1%26p%3D*%26s%3D0%26c%3D0%26f%3D0%26g%3D0%26t%3D0%26__ll%3D-1%26_ato%3D0; miid=981798063989731689; hng=CN%7Czh-CN%7CCNY%7C156; um=0712F33290AB8A6D01951C8161A2DF2CDC7C5278664EE3E02F8F6195B27229B88A7470FD7B89F7FACD43AD3E795C914CC2A8BEB1FA88729A3A74257D8EE4FBBC; enc=1UeyOeN0l7Fkx0yPu7l6BuiPkT%2BdSxE0EqUM26jcSMdi1LtYaZbjQCMj5dKU3P0qfGwJn8QqYXc6oJugH%2FhFRA%3D%3D; ali_ab=58.215.20.66.1516409089271.6; mt=ci%3D-1_1; cookie2=104f8fc9c13eb24c296768a50cabdd6e; _tb_token_=ee7e1e1e7dbe7; v=0","User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}resp = requests.request("GET",url,headers=headers)resp.encoding = resp.apparent_encodingif resp.status_code == requests.codes.ok:return resp.textelse:return False
def getNovelList(page_source,reurl="https://m.lread.net"):rl = re.compile(r"<p><a href='(.*?)'>(.*?)</a></p>")  # 匹配文章列表novels = rl.findall(page_source)novel_list = []for i in novels:novel_dict = (i[1],reurl+i[0])novel_list.append(novel_dict)return novel_listdef getOneNovel(pagecode):rl = re.compile(r'<div id="novelcontent" class="novelcontent"><p>(.*?)</p>')  # 匹配小说内容content = str(rl.findall(pagecode)[0])content = content.replace('\n','').replace('\t','').replace(' ','').replace("&nbsp;"," ").replace("<br/><br/>","\n")return contentdef oneCapter(url):page_source = getCode(url.replace(".html","-1.html"))rl = re.compile(r'<h1 id="chaptertitle">(.*?)(1/(.*?))</h1>')  # 匹配总页数content = rl.findall(page_source)page = int(content[0][1])all_content = ""for i in range(1,page+1):v_url = url.replace(".html", f"-{i}.html")all_content += getOneNovel(getCode(v_url))return all_contentdef download_novel(url="https://m.lread.net/read/208/", name="修仙狂少.txt"):page_source = getCode(url=url)novelList = getNovelList(page_source)print(novelList)f = open(name, encoding="utf-8", mode="w+")for novel in range(len(novelList)):title = novelList[novel][0]page_url = novelList[novel][1]all_content = title + "\n\n" + oneCapter(page_url) + "\n\n"print(f"\r正在写入: {title}  {novel + 1}/{len(novelList)}", end="")f.write(all_content)f.close()
if __name__ == '__main__':download_novel()

又来爬小说了,纯原创相关推荐

  1. python爬虫之爬取起点中文原创小说排行榜

    学习python有段时间了,最近做了一个网上爬虫工具爬取起点中文原创小说排行榜数据,作为最近学习python的一个阶段性成果. 工具 对于做网络爬虫工具经常用到的就是chrome浏览器,主要用于抓取网 ...

  2. python爬收费小说_使用python+selenium爬小说

    图片来源网络 写在前面 最近在学习python,总想着自己动手弄一个简单一点的程序.于是想到了使用python和selenium爬小说 说起小说,想起了自己的一段"过往". 我以前 ...

  3. python爬虫三大解析数据方法:bs4 及爬小说网案例

    bs4 python独有可以将html文档转成bs对象,可以直接调用bs对象的属性进行解析 安装 pip install bs4 本地html Beautiful("open('路径')&q ...

  4. 用python爬小说_使用python+Scrapy爬小说

    图片来源网络 写在前面 最近在学习python,不得不说python真是好用,至少生成程序的速度快,语法也比较简单 ヾ(◍°∇°◍)ノ゙ 感觉很强大,之前怎么就没有想到学一下这个呢,如果大学抢课的时候 ...

  5. Python带进度条的小说爬虫(笔趣网爬小说—简约版)

    Python带进度条的小说爬虫(笔趣网爬小说-简约版) 准备: BeautifulSoup.selenium.PhantomJS 注意PhantomJS安装方式 这里附上安装方式连接: https:/ ...

  6. python爬小说(一)

    网上有很多用python写爬虫爬小说的博客和教程,初涉此道也借鉴了很多前人的经验,在此立贴仅为记录学习爬虫的过程 Beautifulsoup需要了解一下见连接:https://cuiqingcai.c ...

  7. 视频重复播放不用流量html,一个快速突破短视频500播放量的玩法,纯原创!

    我发现了一个抖音快速突破500播放量的玩法,纯原创.目前没有看到有人用这个玩法操作过就是精准破播放,很多人卡在500播放量,以为是视频质量不好,但是他又找不到问题在哪里.其实大部分人根本就不是内容质量 ...

  8. python爬小说目录_【python入门爬虫】爬取笔趣阁小说

    [Python] 纯文本查看 复制代码import time from bs4 import BeautifulSoup import requests import urllib.parse #模拟 ...

  9. python爬小说一本一本爬_【学习笔记】Python爬取某一本小说

    本帖最后由 流浪的二胡 于 2018-10-23 20:19 编辑 最近刀剑神域第三季真的不错,无奈动画一周才更新一次,索性就想先把原著小说看了解解馋. 于是就找到了这个小说网站:http://www ...

最新文章

  1. C++之queue模板类
  2. WCF常见问题之端口共享
  3. MySQL安装时MySQL server一直安装失败日志显示This application requires Visual Studio 2013 Redistributable...
  4. 1.5 特征缩放-机器学习笔记-斯坦福吴恩达教授
  5. 绝了!这款工具让 SpringBoot 不再需要Controller、Service、DAO、Mapper!
  6. 基于线性表邻接矩阵结构的图的深度/广度优先搜索算法
  7. Java黑皮书课后题第5章:*5.24(数列求和)编写程序,计算下面数列的和:1/3+3/5+5/7+7/9+……95/97+97/99
  8. tensorflow中batch normalization的用法
  9. 使用cocoapods install友盟时报错Error installing UMengAnalytics
  10. HTTP请求时常见的请求方式与状态码
  11. mysql中timestamp字段
  12. 一网打尽Mac上的高效工具 - 日常软件篇(附演示视频)
  13. 自媒体文章如何提高原创度以及如何检测原创度
  14. idea 调用webservice接口
  15. 【拉灯君第三弹】母函数-HDU1085-泰山下的AC
  16. Ubuntu16.04运行LSD-SLAM
  17. 深入解读RFM模型-实战应用干货
  18. java word 纸张大小_Java 设置Word页边距、页面大小、页面方向、页面边框
  19. html hide特效,jQuery / 动画与特效中的显示show和隐藏hide - 汇智网
  20. 几个IDS开源系统介绍

热门文章

  1. Android为什么采用Binder机制
  2. 使用xlsxwriter简单的将截图插入excel表格中
  3. C#代码CRUD操作MySQL数据库
  4. 【ALGO】模拟退火(1)
  5. 请教 ANDROID 通信信号、网络信号图标的颜色问题
  6. css图片动画主要知识点
  7. 【持续更新】2001-2022历代AMD 工作站桌面显卡列表,工作站显卡发布日期
  8. 程序员在面试时,如何回答未来规划方面的问题
  9. 一个简单的storyboard示例,其中关于添加navigation的部分可以学习,此前没用过
  10. Python 鸭子类型的理解