热门标签 | 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版权协议。


推荐阅读
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ... [详细]
  • 本文介绍了ArcXML配置文件的分类及其在不同服务中的应用,详细解释了地图配置文件的结构和功能,包括其在Image Service、Feature Service以及ArcMap Server中的使用方法。 ... [详细]
  • 本文详细介绍了 RosPack 类的功能和用法,探讨了其在 ROS 系统中的重要作用。RosPack 类提供了类似于终端命令 rospack 的功能,能够方便地查询和管理 ROS 包的相关信息。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
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社区 版权所有