热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Python爬虫实操】不创作小说,专精网站内容迁移,超高效!(含源代码)

本文详细介绍了如何利用Python爬虫技术实现高效网站内容迁移,涵盖前端、后端及Android相关知识点。通过具体实例和源代码,展示了如何精准抓取并迁移网站内容,适合对Python爬虫实战感兴趣的开发者参考。

本文主要介绍关于android,前端,后端的知识点,对【【Python爬虫实战】 不生产小说,只做网站的搬运工,太牛逼了~(附源码)】和【python爬虫实战教程】有兴趣的朋友可以看下由【m0_67391121】投稿的技术文章,希望该技术和经验能帮到你解决你所遇的面试,学习路线,阿里巴巴相关技术问题。

python爬虫实战教程

前言

遇见你时,漫天星河皆为浮尘

不知从什么时候开始。小说开始掀起了一股浪潮,它让我们平日里的生活不在枯燥乏

味,很多我们做不到的事情在小说里都能轻易实现。

那么话不多说,下面我们就来具体看看它是如何实现的吧??

正文

这里以一部小说为例,将每一章的内容爬取下来保存到本地。

??是我们要爬的小说目录

爬取下来的数据:

分析网页拿数据

首先利用requests库的强大能力,向目标发起请求,拿到页面中的所有HTML数据。

url(https://www.biduo.cc/biquge/40_40847/)

需要注意的是:请求太多次很容易被反爬,最好在请求时带上请求头(模拟浏览器发请求),每个人

的浏览器的请求头都不同,不能直接使用我代码中的请求头,怎么获取自己的请求头可按如下图方

式拿到:

拿到所有HTML数据后,利用正则库结合xpath语法(可以自己去学一下XPath教程)从中抽取章名和

每一章的链接,如下图//*[@id=“list”]/dl/dd/a/text()和//*[@id=“list”]/dl/dd/a/@href即可拿到我们需

要的章节名称和对应的链接地址:

现在已经拿到我们需要的章节名称和对应每一章的链接地址了,这里得到的每一章的链接地址还不

是一个完整的url地址,分析地址栏可知目标url(https://www.biduo.cc/biquge/40_40847/)与每一

章的链接地址拼接,即可得到我们最终所需的URL。

# 2. 请求文章拿到HTML数据,抽取文章内容并保存

得到最终URL后,层层递进,相同的方法:向最终的URL地址发起请求得到小说内容页的所有

HTML数据,再从中抽取我们需要的小说文字内容,并保存到本地以我们抽取到的章名来命名文

件:

# 2. 请求文章拿到HTML数据,抽取文章内容并保存

效果展示——

代码展示——

import requests
from lxml import etree

url = "https://www.biduo.cc/biquge/40_40847/"
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
}

class Spider(object):
    def detail_request(self):
        # 1. 请求目录拿到HTML数据,抽取章名、章链接
        respOnse= requests.get(url,headers=headers)
        # print(response.content.decode('gbk'))
        html = etree.HTML(response.content.decode('gbk'))  # 整理文档对象
        # print(html)
        tit_list = html.xpath('//*[@id="list"]/dl/dd/a/text()')
        url_list = html.xpath('//*[@id="list"]/dl/dd/a/@href')
        print(tit_list,url_list)
        for tit, src in zip(tit_list, url_list):
            self.content_request(tit, src)

    def content_request(self, tit, src):
        # 2. 请求文章拿到HTML数据,抽取文章内容并保存
        respOnse= requests.get(url + src,headers=headers)
        html = etree.HTML(response.content.decode('gbk'))  # 整理文档对象
        cOntent= "
".join(html.xpath('//*[@id="content"]/text()'))
        file_name = tit + ".txt"
        print("正在保存文件:{}".format(file_name))
        with open(file_name, "a", encoding="utf-8") as f:
            f.write(content)

spider = Spider()
spider.detail_request()
总结

好啦!文章到这里就正式结束,比起听歌我还是更喜欢看小说的啦!

大家喜欢什么项目可以评论区留言哦~

有问题或者需要视频学习的可以找我沟通哈??

完整的素材源码等:可以滴滴我吖!或者点击文末hao自取免费拿的哈~ ??往期推荐阅读——

项目0.1【Python爬虫系列】Python爬虫入门并不难,甚至入门也很简单(引言)项目0.2

项目0.3?Python爬虫入门推荐案例:学会爬虫_表情包手到擒来~

项目0.4【Tkinter界面化小程序】用Python做一款免费音乐下载器、无广告无弹窗、清爽超流畅哦

项目0.5【Python爬虫系列】浅尝一下爬虫40例实战教程+源代码【基础+进阶】

项目0.6【Python爬虫实战】使用Selenium爬某音乐歌曲及评论信息啦~

??文章汇总——

Python文章合集 | (入门到实战、游戏、Turtle、案例等)

(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)

本文《【Python爬虫实战】 不生产小说,只做网站的搬运工,太牛逼了~(附源码)》版权归m0_67391121所有,引用【Python爬虫实战】 不生产小说,只做网站的搬运工,太牛逼了~(附源码)需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 本文深入探讨了CGLIB BeanCopier在Bean对象复制中的应用及其优化技巧。相较于Spring的BeanUtils和Apache的BeanUtils,CGLIB BeanCopier在性能上具有显著优势。通过详细分析其内部机制和使用场景,本文提供了多种优化方法,帮助开发者在实际项目中更高效地利用这一工具。此外,文章还讨论了CGLIB BeanCopier在复杂对象结构和大规模数据处理中的表现,为读者提供了实用的参考和建议。 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • 在今天的实践中,我深入学习了网页图像抓取技术,通过编写爬虫程序批量获取网站上的图片资源。具体来说,我选择了一个包含大量高质量图片的网站作为练习对象,并成功实现了将这些图片批量下载到本地存储。这一过程不仅提升了我对爬虫技术的理解,还增强了我的编程能力。 ... [详细]
  • 开发笔记:深入解析Android自定义控件——Button的72种变形技巧
    开发笔记:深入解析Android自定义控件——Button的72种变形技巧 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • Java 枚举类型中如何正确设置和使用枚举值? ... [详细]
  • Eclipse JFace Text框架中IDocument接口的getNumberOfLines方法详解与编程实例 ... [详细]
  • Java Web开发中的JSP:三大指令、九大隐式对象与动作标签详解
    在Java Web开发中,JSP(Java Server Pages)是一种重要的技术,用于构建动态网页。本文详细介绍了JSP的三大指令、九大隐式对象以及动作标签。三大指令包括页面指令、包含指令和标签库指令,它们分别用于设置页面属性、引入其他文件和定义自定义标签。九大隐式对象则涵盖了请求、响应、会话、应用上下文等关键组件,为开发者提供了便捷的操作接口。动作标签则通过预定义的动作来简化页面逻辑,提高开发效率。这些内容对于理解和掌握JSP技术具有重要意义。 ... [详细]
  • 初探设计模式之代理模式:原理与应用解析
    在设计模式中,代理模式通过一个代理对象来控制对真实对象的访问。UML图展示了代理类(如MathProxy)维护了一个引用,使得代理能够访问实际的主题对象。代理模式不仅能够延迟初始化昂贵的对象,还能在访问前后添加额外的操作,如权限检查或日志记录。这种模式在远程服务调用、虚拟代理和智能引用等方面有广泛应用。 ... [详细]
  • C#中实现高效UDP数据传输技术
    C#中实现高效UDP数据传输技术 ... [详细]
  • 深入解析 UIImageView 与 UIImage 的关键细节与应用技巧
    本文深入探讨了 UIImageView 和 UIImage 的核心特性及应用技巧。首先,详细介绍了如何在 UIImageView 中实现动画效果,包括创建和配置 UIImageView 实例的具体步骤。此外,还探讨了 UIImage 的加载方式及其对性能的影响,提供了优化图像显示和内存管理的有效方法。通过实例代码和实际应用场景,帮助开发者更好地理解和掌握这两个重要类的使用技巧。 ... [详细]
author-avatar
sdfasdfqg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有