Python脚本抓取采集小说网站

Python爬虫入门学习实践——爬取小说 Python爬虫入门学习实践——爬取小说 前言 本学期开始接触python,python是一种面向对象的、解释型的、通用的、开源的脚本编程语言,我觉得python最大的优点就是简单易用,学习起来比较上手,对代码格式的要求没有那么严格,这种风格使得我在编写代码时比较舒适。爬虫作为python的最为吸引我兴趣的一个方面,在学习之后可以帮助我们方便地获取更多的数据源,从而进行更深层次更有效的数据分析,获得更多的价值。 爬取小说思路 首先我们肯定是对小说网站进行观察,辨别小说网站是静态还是动态的,此次爬取的目标是笔 阅读详情
你是否苦恼于网上无法下载的“小说在线阅读”内容?或是某些文章的内容让你很有收藏的冲动,却找不到一个下载的链接?是不是有种自己写个程序把全部搞定的冲动?是不是学了 python,想要找点东西大展拳脚,告诉别人“哥可是很牛逼的!”?那就让我们开始吧! 哈哈~
     好吧,我就是最近写 Yii 写多了,想找点东西调剂一下.... = =

    本项目以研究为目的,所有版权问题我们都是站在作者的一边,以看盗版小说为目的的读者们请自行面壁!
    说了这么多,我们要做的就是把小说正文的内容从网页上爬下来,我们的研究对象是全本小说网....再次声明,不对任何版权负责....
     一开始先做最基础的内容,就是把某一章的内容抓取下来。

    环境:Ubuntu, Python 2.7

    基础知识
    这个程序涉及到的知识点有几个,在这里列出来,不详细讲,有疑问的直接百度会有一堆的。
    1.urllib2 模块的 request 对像来设置 HTTP 请求,包括抓取的 url,和伪装浏览器的代理。然后就是 urlopen 和 read 方法,都很好理解。
    2.chardet 模块,用于检测网页的编码。在网页上抓取数据很容易遇到乱码的问题,为了判断网页是 gtk 编码还是 utf-8 ,所以用 chardet 的 detect 函数进行检测。
    3. decode 函数将字符串从某种编码转为 unicode 字符,而 encode 把 unicode 字符转为指定编码格式的字符串。
     4. re 模块正则表达式的应用。search 函数可以找到和正则表达式对应匹配的一项,而 replace 则是把匹配到的字符串替换。

    思路分析:
    我们选取的 url 是 http://www.22pq.com/book/10/10969/6524438.html,武道宗师的第一章。你可以查看网页的源代码,会发现只有一个 content 标签包含了所有章节的内容,所以可以用正则把 content 的标签匹配到,抓取下来。试着把这一部分内容打印出来,会发现很多 <br /> 和  ,<br /> 要替换成换行符,   是网页中的占位符,即空格,替换成空格就好。这样一章的内容就很美观的出来了。完整起见,同样用正则把标题爬下来。

# -*- coding: utf-8 -*- 
  
import urllib2 
import re 
import chardet 
  
  
class Book_Spider: 
  
  def __init__(self): 
    self.pages = [] 
  
  # 抓取一个章节 
  def GetPage(self): 
    myUrl = "http://www.22pq.com/book/10/10969/6524438.html"; 
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    headers = { 'User-Agent' : user_agent } 
    request = urllib2.Request(myUrl, headers = headers) 
    myResponse = urllib2.urlopen(request) 
    myPage = myResponse.read() 
  
    #先检测网页的字符编码,最后统一转为 utf-8 
    charset = chardet.detect(myPage) 
    charset = charset['encoding'] 
    if charset == 'utf-8' or charset == 'UTF-8': 
      myPage = myPage 
    else: 
      myPage = myPage.decode('gb2312','ignore').encode('utf-8') 
    unicodePage = myPage.decode("utf-8") 
  
    try: 
      #抓取标题 
      my_title = re.search('<h1>(.*?)</h1>',unicodePage,re.S) 
      my_title = my_title.group(1) 
    except: 
      print '标题 HTML 变化,请重新分析!'
      return False
      
    try: 
      #抓取章节内容 
      my_content = re.search('<div.*?id="htmlContent" class="contentbox">(.*?)<div',unicodePage,re.S) 
      my_content = my_content.group(1) 
    except: 
      print "内容 HTML 变化,请重新分析!"
      return False
      
    #替换正文中的网页代码 
    my_content = my_content.replace("<br />","\n") 
    my_content = my_content.replace(" "," ") 
  
    #用字典存储一章的标题和内容 
    onePage = {'title':my_title,'content':my_content} 
    return onePage 
  
  
  # 用于加载章节 
  def LoadPage(self): 
    try: 
      # 获取新的章节 
      myPage = self.GetPage() 
        
      if myPage == False: 
        print '抓取失败!'
        return False
        
      self.pages.append(myPage) 
    except: 
      print '无法连接服务器!'
  
  #显示一章 
  def ShowPage(self,curPage): 
      print curPage['title'] 
      print curPage['content'] 
  
  def Start(self): 
    print u'开始阅读......\n'
    #把这一页加载进来 
    self.LoadPage() 
    # 如果self的pages数组中存有元素 
    if self.pages: 
      nowPage = self.pages[0] 
      self.ShowPage(nowPage) 
  
  
#----------- 程序的入口处 ----------- 
print u""" 
--------------------------------------- 
  程序:阅读呼叫转移 
  版本:0.1 
  作者:angryrookie 
  日期:2014-07-05 
  语言:Python 2.7 
  功能:按下回车浏览章节 
--------------------------------------- 
"""
  
print u'请按下回车:'
raw_input() 
myBook = Book_Spider() 
myBook.Start() 


理所当然地,接下来我们要把整本小说都爬下来。首先,我们要把程序从原来的读完一章就结束,改成读完一章之后可以继续进行下一章的阅读。
    注意到每个小说章节的网页下面都有下一页的链接。通过查看网页源代码,稍微整理一下(  不显示了),我们可以看到这一部分的 HTML 是下面这种格式的:

<div id="footlink"> 
 <script type="text/javascript" charset="utf-8" src="/scripts/style5.js"></script> 
 <a href="http://www.22pq.com/book/10/10969/6524438.html">上一页</a>   
 <a href="http://www.22pq.com/book/10/10969/">返回目录</a>   
 <a href="http://www.22pq.com/book/10/10969/6524440.html">下一页</a> 
</div> 

上一页 、返回目录、下一页都在一个 id 为 footlink  的 div 中,如果想要对每个链接进行匹配的话,会抓取到网页上大量的其他链接,但是 footlink 的 div 只有一个啊!我们可以把这个 div 匹配到,抓下来,然后在这个抓下来的 div  里面再匹配 <a> 的链接,这时就只有三个了。只要取最后一个链接就是下一页的 url 的,用这个 url 更新我们抓取的目标 url ,这样就能一直抓到下一页。用户阅读逻辑为每读一个章节后,等待用户输入,如果是 quit 则退出程序,否则显示下一章。
【零基础学爬虫】学Python的第一周,自己编写用Python爬取vip小说付费章节,实现小说自由! 阅读详情

相关推荐

如何利用Python爬虫爬取小说网站并保存到txt文件

本人特别爱看网络小说,但是呢,有些小说网站的弹窗广告啊、悬浮广告太烦人,正好最近在研究Python,就来试试利用Python把小说站的小说爬下来,并保存到txt文件里。这样就可以直接使用手机打开txt来看了。并且呢,我也能熟悉利用python抓取文本数据的方法。 以爬取靠谱小说网的《伏天氏》这本小说的章节内容为例,目标url:http://www.kpxsw.com/0_479.html 第一步:选取文章列表其中某一章,检查网页,可以找到这本小说所有章节的链接和名称。 写出xpath表达式提取出hr

topzero123的博客 1万+

python简单爬取小说_python批量爬取小说(一步一步实现,适合新手入门)

1、下载小说的一个章节让我们首先打开书趣阁网站中的一个小说中的一个章节,如图:然后我们开始请求网页数据:response = requests.get('http://www.shuquge.com/txt/63542/9645082.html')# 自动解决编码问题response.encoding = response.apparent_encoding使用 parsel 库对数据进行解析:解...

weixin_39945679的博客 673

python采集小说网站完整教程(附完整代码)

python 采集网站数据,本教程用的是scrapy蜘蛛 1、安装Scrapy框架 命令行执行: pip install scrapy 安装的scrapy依赖包和原先你安装的其他python包有冲突话,推荐使用Virtualenv安装 安装完成后,随便找个文件夹创建爬虫 scrapy startproject 你的蜘蛛名称 文件夹目录 爬虫规则写在spiders目录下 items.py ——需要爬取的数据 pipelines.py ——执行数据保存 settings —— 配置 middleware

weixin_46737755的博客 1653

用python爬取某网站小说-小白级

这是小白用来练手的~ 欢迎指出不足!! 用的是python 3.7 import requests import re ##1.确定爬取的网址 url='http://www.biquge.info/10_10582/' ##2发送请求 response=requests.get(url=url) response.encoding='utf-8' html_data=response.text ##3.数据解析 result_list=re.findall('<dd><a href="

Asssshzy的博客 324

Python零基础爬虫项目,采集小说网站整站数据

声明:本文只做学习使用,禁止用作非法途径,一切因为爬虫技术使用不当造成的不良后果皆与本人无关 需要用到的库和模块 requests库 lxml库下的etree模块 requests库下的RequestException类 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??.

Python_sn的博客 513

通过python采集当下比较火的小说优化网站seo:目标站(www.9kzww.com)

通过python采集当下比较火的小说优化网站seo:目标站(www.9kzww.com) python代码分两个文件,第一个是根据小说名称获取该小说在各大搜索引擎的搜索指数,第二个文件是从(www.9kzww.com)获取小说名称,然后调用第一个文件中的方法获取搜索引擎数据并存储到mysql数据表中 getnum.py文件: #coding=utf-8 from bs4 import Beauti...

shanying1991的博客 1030

批量下载小说网站上的小说(python爬虫)

随便说点什么   因为在学python,所有自然而然的就掉进了爬虫这个坑里,好吧,主要是因为我觉得爬虫比较酷,才入坑的。   想想看,你可以批量自动的采集互联网上海量的资料数据,是多么令人激动啊!   所以我就被这块大蛋糕吸引过来了 :)   想学爬虫自然要去找学习资料了,不过网上有很多,我找了不少,个人觉得崔庆才的爬虫教程写得不错。起码对我来说,入门是够了。   感兴趣的朋友可以...

weixin_30730151的博客 588

Python爬虫实战:多层级小说网站数据抓取

requests:用于发送HTTP请求:用于解析HTML文档lxml:作为BeautifulSoup的解析器,提供更快的解析速度:用于实现多线程爬取,提高效率:提供随机User-Agent,避免被网站反爬retrying:实现请求重试机制,增强爬虫稳定性本文详细介绍了如何使用Python爬虫技术从小说网站(以笔趣看为例)抓取多层级数据。我们实现了从书目列表->章节列表->正文内容的完整遍历流程,并加入了多线程、错误处理、反爬虫策略等高级功能。关键要点:使用面向对象的方式设计爬虫,提高代码可维护性。

2201_76125261的博客 551

基于Python网络爬虫的小说网站数据分析

摘要:本文设计了一个Python网络爬虫程序,用于抓取小说网站的多项信息。该程序通过模拟用户行为(随机User-Agent、访问间隔)实现反爬技术,使用BeautifulSoup和正则表达式解析网页,可获取小说标题、作者、出版信息、简介、封面、价格、评论等数据,并存储为结构化格式(CSV/JSON/Excel)。程序支持深度爬取小说章节内容并进行词频统计,通过递归请求和动态调整访问频率确保爬取稳定性。实现过程包括URL获取、内容解析、数据存储等模块,体现了Python爬虫技术的综合应用。

毕业作品网站 7808

python免费采集器

自动采集,自动上传数据库,使用方法,发言咨询百度贴吧10537902

ROS2实战:打造智能巡检机器人的关键技术与实现

本文详细介绍了基于ROS2和Navigation2构建智能巡检机器人的完整实战流程。通过设计主从协作的事件驱动架构,实现了机器人在已知地图中的自动导航、定点语音播报和环境图像采集功能。文章涵盖了从环境搭建、仿真配置到核心控制节点、语音服务与图像记录模块的代码实现,为开发者打造实用的自动巡检机器人提供了清晰的技术指南。

weixin_29031057的博客 222

【python】python小说数据抓取+可视化(源码+数据)【独一无二】

># 【python】python小说数据抓取+可视化(源码+数据)【独一无二】 >--- > @[TOC](目录) --- # 一、功能描述 主要采集是创世中文网,网页中主要功能如下: 1. **爬取小说信息:** 通过循环遍历预设的小说类型和页数,使用requests库发送HTTP请求获取每一页小说信息的HTML页面,然后解析库提取页面中的小说标题、等级、类型、字数和简介等信息,并保存到Excel文件中。 2. **数据清洗和转换:** 读取Excel文件中的数据,对字数进行单位统一和异常

测试开发自动化 3689

一文帮你彻底搞懂ARM Debug Interface之SWD(转)

ARM的文档写的已经很好了,但是关于上电以后的第一时间应该怎么操作,依然写的不够清晰,导致我第一次用的时候还是费了一些周折。今天做一个详细的梳理,希望能够帮助到更多的朋友。BTW, ARM_Cortex-M0/3 DesignStart系列会持续更新,只是中间可能会穿插其他知识点。SWD是Serial Wire Debug的简称,翻译成中文是”串行线调试”。

2302_79847220的博客 6861

【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现

通过Python对书旗网小说网站的数据采集与分析,我们得出了关于小说连载/完结状态占比、最有人气作者、名词云分析、可售类型和已售类型的结论。这些分析结果为我们提供了深入了解书旗网小说市场的洞察,并为相关领域的从业者提供了有价值的参考和决策依据。在这个项目中,有以下创新点:应用领域创新:通过对书旗网小说网站进行数据采集与分析,为图书出版行业提供了新的视角和方法。通过深入了解读者偏好、作者人气以及作品类型等方面的数据,可以帮助出版商、作者和平台运营者制定更加精准的营销策略和推荐算法。

weixin_49081159的博客 2580

Claude Code × SolidWorks:批量填属性、格式转换、BOM 汇总自动化实战

摘要:本文介绍利用 Claude Code 生成 VBA 宏实现 SolidWorks 批量处理任务的自动化方案。包含5个实战案例:批量填写自定义属性(60分钟任务→10秒)、批量格式转换(80分钟→30秒)、多配置工程图自动生成(120分钟→2分钟)、滚珠丝杠选型计算(15分钟→10秒)和装配体递归BOM导出(40分钟→1分钟)。所有代码基于SolidWorks 2020+ API,提供完整VBA实现和操作指南,可显著提升设计效率。

m0_64424835的博客 610

.NET MAUI跨平台串口通讯方案

MAUI跨平台串口通信架构设计采用分层模式,核心是共享业务逻辑层与平台特定实现。通过定义统一的ISerialPortService接口,实现了Windows、Android、iOS和macOS四大平台的串口通信功能。Windows平台使用System.IO.Ports类库,Android通过USB Host模式实现,iOS基于ExternalAccessory框架,macOS则采用IOKit。该设计支持串口连接管理、数据收发等核心功能,并通过事件机制实现异步通信。架构采用条件编译区分各平台实现,确保代码复用

冰茶的博客 1663

记一个简单的scrapy爬虫程序

import scrapy from urllib import request class bookSpider(scrapy.Spider): name = “bookSpider” start_urls = [‘https://read.qidian.com/chapter/sMwmRYRKF1KLTMDvzUJZaQ2/eGngSvaVqnlOBDFlr9quQA2’] def parse...

lmysrjhjnr的博客 297

绕过App某加密企业版加固Frida检测

可以发现dlsym函数加载了两次pthread_create,可以认为这两个进程(或某一个进程)是和Frida的检测有关的,于是为了绕过检测,我们可以让它加载一个虚假的pthread_create函数,得到一个空结果绕过检测。成功绕过了libnllvm1717052779924.so的检测,又到了libface_nllvm.so的检测,使用同样的方法去绕过libface_nllvm.so的检测,代码我这里就不上了,大家可以自己修改以下。dlsym()函数的作用是在已经加载的动态链接库中查找指定符号的地址。

墨痕诉清风的博客 1621

Python爬虫实战 | 爬取网络中的小说

网络文学是新世纪我国流行文化中的重要领域,年轻人对网络小说更是有着广泛的喜爱。本文以抓取网络小说正文为例编写一个简单、实用的爬虫脚本。

大模型研究中心 5099

【100%通过率】华为od机试C卷【小朋友来自多少小区】JS 实现

幼儿园组织活动,老师布置了一个任务:每个小朋友去了解与自己同一个小区的小朋友还有几个.我们将这些数量汇总到数组 garden 中。请根据这些小朋友给出的信息,计算班级小朋友至少来自几个小区?

MISAYAONE的博客 2006

[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。......

HowieXue 薛永浩的博客 1万+

python采集数据搭建小说网站_Python制作爬虫采集小说

开发工具:python3.4操作系统:win8主要功能:去指定小说网页爬小说目录,按章节保存到本地,并将爬过的网页保存到本地配置文件。被爬网站:http://www.cishuge.com/小说名称:灵棺夜行代码出处:本人亲自码的import urllib.requestimport http.cookiejarimport socketimport timeimport retimeout = ...

weixin_42629815的博客 327

杰理AC696N系列芯片外部中断使用教程

本教程详细介绍了杰理AC696N芯片的GPIO引脚中断唤醒功能实现方法。主要内容包括: 功能特点: 支持任意GPIO引脚配置为中断源 可灵活选择上升沿或下降沿触发 提供自定义中断回调函数接口 核心实现: 通过port_wkup_interrupt_init()函数配置GPIO属性 使用request_irq()注册中断服务程序 提供中断使能/关闭接口 注意事项: 此功能在低功耗模式下无效 需注意引脚冲突和中断优先级设置 建议在回调函数中实现简洁的逻辑 应用场景: 按键检测 外部信号监测 事件触发等 本方案提

qq_42014563的博客 944

利用Python爬虫抓取小说并保存至本地

Python 爬虫是一种自动化工具,可以模拟浏览器行为,从网页上抓取数据。在本文中,我们将使用 Python 的 requests、parsel 和 tqdm 库来实现小说内容的抓取和保存。本文介绍了如何使用 Python 爬虫从指定网站上抓取小说内容,并保存至本地文件。通过学习本文,你可以掌握使用 Python 爬虫进行数据采集的基本方法,以及如何处理抓取到的数据内容。当然,在实际应用中,你还可以根据需求对代码进行进一步的优化和扩展,以满足更多的功能需求。

qq_43580271的博客 1233

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python爬虫小说设计过程_Python制作爬虫采集小说

开发工具:python3.4操作系统:win8主要功能:去指定小说网页爬小说目录,按章节保存到本地,并将爬过的网页保存到本地配置文件。被爬网站:http://www.cishuge.com/小说名称:灵棺夜行代码出处:本人亲自码的import urllib.requestimport http.cookiejarimport socketimport timeimport retimeout = ...

weixin_39663593的博客 238

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

对某网站小说的爬取下载

import urllib.request # 用于获取网页内容的模块 import bs4 import requests from bs4 import BeautifulSoup # 用于解析网页源代码的模块 header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (K...

夏虫语冰的博客 558

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: ELK日志应用平台搭建
下一篇: Python爬虫小说采集程序
cmdos
博客等级 码龄19年 83粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值