Python爬虫:爬取盗墓笔记,零基础教程!

Python网络爬虫实践(2):爬取小说网站小说 Python网络爬虫实践(2) 一、需求分析 爬取某小说网站的一部小说 二、步骤 目标数据 网站 页面 分析数据加载流程 分析目标数据所对应的url 下载数据 清洗,处理数据 数据持久化 重点:分析目标数据所对应的url 本文小说网站选取精彩小说网为例,选取的小说为盗墓笔记。 通过Chrome开发者模式,找到小说名字,目录,目录内容所在位置。 小说的名字: 目... 阅读详情

   

这次爬取的网址是  http://seputu.com/。之前也经常在上面在线看盗墓笔记。

    按照咱们之前的学习爬虫的做法,使用firebug审查元素,查看如何解析html。

       这次咱们要把书的名称,章节,章节名称,章节链接抽取出来,存储到数据库中,同时将文章的内容提取出来存成txt文件。

   看一下html结构就会发现这个页面结构非常分明,标题的html节点是  div class = ''mulu-title",章节的节点是 div class= "box" ,每一章的节点是 div class= "box"中的<li>标签。

        然后咱们将第一章的链接 http://seputu.com/biji1/1.html打开,上面就是文章的内容。

   可以看到文章的内容是使用 div class ="content-body"中的<p>标签包裹起来的,总体来说提取难度挺小。

        打开cmd,输入scrapy startproject daomubiji,这时候会生成一个工程,然后我把整个工程复制到pycharm中

  

上图就是工程的结构。

        DaomubijiSpider.py ------Spider 蜘蛛

        items.py -----------------对要爬取数据的模型定义

        pipelines.py-------------处理要存储的数据(存到数据库和写到文件)

        settings.py----------------对Scrapy的配置

        main.py -------------------启动爬虫

        test.py -------------------- 测试程序(不参与整体运行)

   下面将解析和存储的代码贴一下,完整代码已上传到github:https://github.com/qiyeboy/daomuSpider。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

DaomubijiSpider.py (解析html)

#coding:utf-8

import scrapy

from scrapy.selector import Selector

from daomubiji.items import DaomubijiItem

class daomuSpider(scrapy.Spider):

    name = "daomu"

    allowed_domains = ["seputu.com"]

    start_urls = ["http://seputu.com/"]

    ''.split()

    def parse(self, response):

        selector = Selector(response)

        mulus= selector.xpath("//div[@class='mulu']/div[@class='mulu-title']/center/h2/text()").extract()#将目录提取出来

        boxs = selector.xpath("//div[@class='mulu']/div[@class='box']")#.extract()

        for i in range(len(mulus)):

            mulu = mulus[i]#提取出来一个目录

            box = boxs[i]#提取出来一个box

            texts = box.xpath(".//ul/li/a/text()").extract()#将文本提取出来

            urls  = box.xpath(".//ul/li/a/@href").extract()#将链接提取出来

            for j in range(len(urls)):

                item = DaomubijiItem()

                item['bookName'] = mulu

                try:

                    item['bookTitle'] = texts[j].split(' ')[0]

                    item['chapterNum'] = texts[j].split(' ')[1]

                    item['chapterName'] = texts[j].split(' ')[2]

                    item['chapterUrl'] = urls[j]

                    request = scrapy.Request(urls[j],callback=self.parseBody)

                    request.meta['item'] = item

                    yield request

                except Exception,e:

                    print 'excepiton',e

                    continue

    def parseBody(self,response):

        '''

        解析小说章节中的内容

        :param response:

        :return:

        '''

        item = response.meta['item']

        selector = Selector(response)

        item['chapterContent'] ='\r\n'.join(selector.xpath("//div[@class='content-body']/p/text()").extract())

        yield item

  

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

   pipelines.py:(处理要存储的数据)

# -*- coding: utf-8 -*-

# Define your item pipelines here

#

# Don't forget to add your pipeline to the ITEM_PIPELINES setting

# See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html

import os

from scrapy.pipelines.files import FilesPipeline

from daomubiji import settings

from pymongo import MongoClient

class DaomubijiPipeline(object):

    def process_item(self, item, spider):#将小说进行存储

        dir_path = '%s/%s/%s'%(settings.FILE_STORE,spider.name,item['bookName']+'_'+item['bookTitle'])#存储路径

        print 'dir_path',dir_path

        if not os.path.exists(dir_path):

            os.makedirs(dir_path)

        file_path = '%s/%s'%(dir_path,item['chapterNum']+'_'+item['chapterName']+'.txt')

        with open(file_path,'w') as file_writer:

            file_writer.write(item['chapterContent'].encode('utf-8'))

            file_writer.write('\r\n'.encode('utf-8'))

        file_writer.close()

        return item

class DaomuSqlPipeline(object):

    def __init__(self):

    #连接mongo数据库,并把数据存储

        client = MongoClient()#'mongodb://localhost:27017/'///'localhost', 27017///'mongodb://tanteng:123456@localhost:27017/'

        db = client.daomu

        self.books = db.books

    def process_item(self, item, spider):

        print 'spider_name',spider.name

        temp ={'bookName':item['bookName'],

               'bookTitle':item['bookTitle'],

               'chapterNum':item['chapterNum'],

               'chapterName':item['chapterName'],

               'chapterUrl':item['chapterUrl']

               }

        self.books.insert(temp)

        return item

  

      接下来切换到main.py所在目录,运行python main.py启动爬虫。

         没过几分钟,爬虫就结束了,咱们看一下爬取的数据和文件。

    

         数据库数据:

  

  今天的分享就到这里,如果大家觉得还可以呀,记得推荐呦。

最后这里给大家免费分享一份Python学习资料,包含了视频、源码、课件,希望能够帮助到那些不满现状,想提示自己却又没用方向的朋友,也可以和我一起来交流呀!

编辑资料、学习路线图、源代码、软件安装包等!【点击领取】!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

图片

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

 

scrapy爬虫框架学习入门教程及实例 Scrapy是一个基于Twisted,纯Python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便~ Scrapy 使用 Twisted这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。整体架构如下图所示: 绿线是数据流向,首先从初始URL 开始,Scheduler 会将其交给 D 阅读详情

相关推荐

PCIe 6.0实战指南:从链路训练到信号完整性的避坑手册

本文是一份针对PCIe 6.0硬件工程师的实战避坑指南。文章深入解析了从NRZ到PAM4调制带来的信号完整性挑战,详细拆解了链路训练(LTSSM)的复杂过程与调试方法,并提供了从信道仿真到实验室实测(如使用Keysight示波器进行眼图与误码率分析)的完整信号完整性闭环验证策略,帮助工程师解决高速率下的链路不稳定与降速问题。

weixin_29306875的博客 342

python爬虫-爬取盗墓笔记

       本来今天要继续更新 scrapy爬取美女图片 系列文章,可是发现使用免费的代理ip都非常不稳定,有时候连接上,有时候连接不上,所以我想找到稳定的代理ip,下次再更新  scrapy爬取美女图片之应对反爬虫  文章。       好了,废话不多说,咱们进入今天的主题。这一篇文章是关于爬取盗墓笔记,主要技术要点是scrapy的使用,scrapy框架中使用mongodb数据库,

七夜的博客 2353

新手学习Vivado XDMA (1) - 配置详细分析

PCIe 在 Vivado XDMA 中的配置分析。

qq_18553915的博客 9710

Scrapy爬取盗墓笔记 0.2版(mongedb redis)

这次的爬虫相对于上一版来说,增加了对小说内容的爬取,并且利用了Redis数据库。 main.py from scrapy import cmdline cmdline.execute('scrapy crawl dmoz'.split()) setting.py # -*- coding: utf-8 -*- BOT_NAME = 'Spider' SPIDER_MODULES = ['Spi...

人生苦短,我用python 642

国税局发票查验中英文验证码识别最新版,识别率99.9%

采用深度学习进行发票查验验证码模型的训练,在我电脑上模型训练的环境如下: 显卡:RTX 2080TI tensorflow-gpu:2.5.3 1 训练集和测试集的准备 发票查验的验证码分为4种类型,分别为黑色、红色、黄色、蓝色,经过我的测试,采用4个模型的效果最好,每个模型对应识别一种类型的验证码。 首先我们4种类型的验证码都准备10万张。 00黑色类型的验证码: 01红色类型的验证码: 02黄色类型的验证码: 03蓝色类型的验证码: 验证码图像图像准备好后,对其进行标记,也就是对验证码重命名:

Keras深度学习 83万+

ORB-SLAM3单目摄像头

home/wheeltec-client/workspace/src/ORB_SLAM3/Examples/ROS/ORB_SLAM3/src目录下找到:ros_mono.cc文件,打开找到并修改成我们自己摄像头的订阅话题(usb_cam/imahe_raw)即相机设置文件,官方提供的是Asus.yaml,可以另复制命名一个文件My_camera.yaml,将里面的相机参数修改成自己标定过的参数。sudoaptinstalllibeieng3-dev#命令安装的版本是eigen。

疯狂的石头 742

使用python爬取整本《盗墓笔记》

一、前言 《盗墓笔记》是一本经典的盗墓题材小说,故事情节引人入胜。本文将使用python2.7通过小说网站http://www.daomubiji.com/来爬取整本盗墓笔记并保存,在这一过程中演示了使用python网络库requests实现简单的python爬虫以及使用html文档分析库BeautifulSoup分析网页。 二、准备 在进行下一步之前先要安装两个库:requests以及Beaut...

weixin_30753873的博客 2359

【机械臂算法】机械臂动力学参数辨识仿真

本文以puma560m机械臂为例子进行动力学参数辨识的讲解,puma560m可以在robotic toolbox中找到,这里以它真实机械臂对他的动力学参数进行辨识。此外这里还有要说的是,机械臂参数辨识其实是一个系统工程,其中和系统的机械、电子、嵌入式都有着很深的联系,并不是仿真这么简单的。

vrijheid的博客 7834

Scrapy 应用之爬取《盗墓笔记》

爬取《盗墓笔记》和爬取《宦海沉浮》原理一样,但是使用了两种不同的追踪链接的方式,《盗墓笔记》使用的是跟踪下一页链接,直至没有下一页为止,《宦海沉浮》则是将所有的url都放在start_urls中进行爬取 第一步:新建项目 KeysdeMacBook:Desktop keys$ scrapy startproject Novel New Scrapy project 'Novel...

anlao7404的博客 420

一文速学数模-K-means聚类算法实战:信用卡用户画像聚类分析

该项目算是非常经典的金融业务用户画像的基础分析了,主要根据用户信用卡使用行为数据进行分析,根据收集到的不同字段信息,对每个用户划分类别。这里需要说明一下的是,聚类模型只是将具有相似行为的大部分用户聚集到一个类别里面,这点并不会考虑到每个字段的含义,也就是分成的类别并不是用户价值等级,此类别仅仅是这个类别大体相同的信用卡用户行为对象,并不能给每个用户价值打上标签,那是评价模型做的事,这里要注意不要搞混淆了,用户价值评价是评价模型决定的,而画像是聚类模型分析的。

master_hunter的博客 1万+

新手必读!2025最全AI智能体入门手册,50个问题全讲透

感知(Perception):能读取环境,比如读取网页数据、识别用户输入、接入 API;思考(Reasoning/Planning):理解任务目标,规划出行动步骤;行动(Action):调工具、查资料、发消息、写入数据库……直接执行任务。有了这三步,智能体才不是“一个会说话的大模型”,而是真正的“能落地执行的工作代理人”。多个 Agent 分工协作,每个智能体负责一个角色或任务节点,像一个“虚拟团队”。一个爬数据的 Agent,一个提炼要点的 Agent,一个撰写报告的 Agent,

互联网架构师笔记 1968

盗墓笔记案例

redis案例

qq_51179608的博客 1300

BLDC&PMSM电机控制器硬件设计工程(三)控制器驱动芯片方案

在汽车电机控制系统中,栅极驱动IC扮演着至关重要的角色。它作为主控MCU与功率开关管(MOSFET/IGBT)之间的桥梁,将微弱的PWM信号放大为足以快速、可靠驱动功率管的强信号。本文将深入解析英飞凌、TI和NXP的车规级栅极驱动方案,重点关注半桥和单侧驱动IC。1)为什么需要栅极驱动器?栅极驱动器是低压控制器和高压电路之间的缓冲电路,用于放大控制器的控制信号,从而实现功率器件更有效的导通和关断。栅极驱动器的作用总结如下:1.将控制器的低压信号转化为更高电压的驱动信号,以实现功率器件稳定导通和关断。

小幽余生不加糖 493

Python爬虫:多线程爬取盗墓笔记

用到的库函数 import requests import time from lxml import etree from multiprocessing.pool import Pool 爬取用xpath 爬取盗墓笔记的标题、章节、正文 直接上代码: 页面获取; def get_info(url): headers = { 'Accept'...

网络爬虫开发 806

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python爬取笔记_使用python爬取整本《盗墓笔记》

一、前言《盗墓笔记》是一本经典的盗墓题材小说,故事情节引人入胜。本文将使用python2.7通过小说网站http://www.daomubiji.com/来爬取整本盗墓笔记并保存,在这一过程中演示了使用python网络库requests实现简单的python爬虫以及使用html文档分析库BeautifulSoup分析网页。二、准备在进行下一步之前先要安装两个库:requests以及Beautifu...

weixin_39886469的博客 840

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python爬取重名div_第6天 | 10天搞定Python网络爬虫,爬盗墓笔记,牛

前几天,有老铁留言说能不能VIP小说?-我回复说他是"坏人",因为我觉得他不尊重别人的劳动成果,如果是免费的,我倒可以考虑。于是,我上网找呀找,搜呀搜,看有没有免费版,而且是大家都喜欢看的免费小说,爬下来,放在手机上看。经过终于让我找到了近几年特别火的、免费版的《盗墓笔记》。6.1 爬取目标用Chrome浏览器,打开http://seputu.com网址的那一刻,小伙伴们都惊呆了,第1部到第8部都...

weixin_39826342的博客 425

scrapy之盗墓笔记三级页面爬取

#今日目标 **scrapy之盗墓笔记三级页面爬取** 今天要爬取的是盗墓笔记小说,由分析该小说的主要内容在三级页面里,故需要我们 一一解析 *代码实现* daomu.py ``` import scrapy from ..items import DaomuItem class DaomuSpider(scrapy.Spider): ...

a345198433的博客 1860

Python——使用 requests 模块爬取网页数据

使用requests模块爬取网页数据 文章目录使用requests模块爬取网页数据@[toc]1. 爬取静态页面数据1.1 准备工作1.2 各模块代码1.3 完整代码2. 爬取动态页面数据2.1 准备工作2.2 完整代码 以下内容根据个人学习总结 1. 爬取静态页面数据 对于一些静态页面而言,爬取相关数据比较简单,主要思路是首先获取网页链接,然后定位数据源码,最后获取其内容 以下任务目标为爬取盗...

Zeeno的学习博客 1万+

Python实战:爬取小说《盗墓笔记》

Python实战:爬取小说《盗墓笔记》 题目要求 从网页 http://www.daomubiji.com/中可以看到《盗墓笔记》的每一本书,点开能够查看每一本书的具体内容。现在要求,保存这些内容到本地,为了看起来比较舒服,要求对每一本书新建一个文件夹,对于这本书的每一个章节,都用一个txt文件存储。 思路分析 主要思路: 1.从首页获取到 每一本书的书名和链接 2.从书的链接中获取到 每一本书的每一个章节和章节链接 3.从章节链接中获取到 正文内容 并 保存到本地 其他: 选择使用 多线程 的方法加快速

耿鬼不会笑的博客 3937

用python爬取《龙岭迷窟》评论,看看比同系列鬼吹灯作品以及《盗墓笔记》好在哪里?

大家好,我是朱小五 最近不知道大家发现没有,新出了几部国产好剧,其中小五比较喜欢的就是鬼吹灯系列的《龙岭迷窟》。 自从开播以来,获得好评无数,无论是原著粉还是路人观众,都对这部新网剧赞誉有加。 豆瓣评分开播8.4分,目前有所回落,维持在8.2分,在《鬼吹灯》系列的众多影视化作品中名列前茅。 《鬼吹灯》之所以作品这么多,是由于小说的版权非常分散。 这也导致制作团队不同,水平更是良莠不齐,正所谓htt...

数据分析与统计学之美 1911

Python爬虫之wordcloud+jieba爬取小说并生成词云(八)

原创不易,转载前请注明博主的链接地址:Blessy_Zhu https://blog.youkuaiyun.com/weixin_42555080 本次代码的环境: 运行平台: Windows Python版本: Python3.x IDE: PyCharm 一、 前言 今天这篇文章写的内容是爬取《全书网》http://www.quanshuwang.com/book/9/9055 的《盗墓笔记小说》,然后用...

Blessy_Zhu的博客 7011

Scrapy盗墓笔记爬虫0.1版 保存到数据库mongode

这次的实例是用scrapy对盗墓笔记进行爬取,并且通过数据库mongode进行连接,这里对数据库的可视化工具为:Robo 3T 1.1.1 环境: win10 py3.6 scrapy1.6 编译器: pycharm main.py from scrapy import cmdline cmdline.execute('scrapy crawl dmoz'.split()) items.py #...

人生苦短,我用python 640

用python爬取《龙岭迷窟》评论,制作词云,看看与《盗墓笔记》的区别在哪里

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文章来自腾讯云 作者:Python进阶者 想要学习Python?有问题得不到第一时间解决?来看看这里“1039649593”满足你的需求,资料都已经上传至文件中,可以自行下载!还有海量最新2020python学习资料。 点击查看 豆瓣评分与观众 对于一部国产网剧,如果想分析它的评分与评价,那么似乎只有豆瓣这一个网站可以选择了。 而每一个学python的人,应该写过豆瓣,拉勾,网易云

weixin_49345590的博客 318
上一篇: Python爬虫零基础实战教程,简洁实用!
下一篇: Python爬虫Scrapy模块,入门案例,零基础教程!
Python_trys
博客等级 码龄2年 4370粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值