Python数据爬虫教程(非常详细)从零基础入门到精通,看完这一篇就够了

Python数据爬虫教程(非常详细)从零基础入门到精通,看完这一篇就够了

前排提示:文末有CSDN独家爬虫籽料包哦~

一、Scrapy

Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。 Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。 通常我们可以很简单的通过Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。

二、Scrapy架构图(绿线是数据流向)

Scrapy Engine(引擎 ): 负责Spider、ItemPipeline、Downloader、Scheduler 中间的通讯,信号、数据传递等。

Scheduler(调度器 ): 它负责接受引擎发送过来的Request请求,并按照一定的 方式进行整理排 列,入队,当引擎需要时,交还给引擎。

Downloader (下载器):负责下载Scrapy Engine(引擎)发送的所有Requests 请求,并将其 获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider 来处理,

Spider (爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字 段需要的数 据,并将需要跟进的URL提交给引擎,再次Scheduler(调度器).

Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处 理(详细分析、 过滤、存储等)的地方。

Downloader Middlewares (下载中间件):你可以当作是一个可以自定义扩 展下载功能的组件。

Spider Middlewares(Spider 中间件):你可以理解为是一个可以自定扩展 和操作引擎和 Spider中间通信的功能组件(比如进入Spider的Responses;和从 Spider出去的Requests)

三、Scrapy的运作流程

代码写好,程序开始运行…

1 引擎:Hi!Spider, 你要处理哪一个网站?

2 Spider:老大要我处理xxxx.com。

3 引擎:你把第一个需要处理的URL给我吧。

4 Spider:给你,第一个URL是xxxxxxx.com。

5 引擎:Hi!调度器,我这有request请求你帮我排序入队一下。

6 调度器:好的,正在处理你等一下。

7 引擎:Hi!调度器,把你处理好的request请求给我。

8 调度器:给你,这是我处理好的request

9 引擎:Hi!下载器,你按照老大的下载中间件的设置帮我下载一下这个 request请求

10 下载器:好的!给你,这是下载好的东西。(如果失败:sorry,这个 request下载失败了。然

后引擎告诉调度器,这个request下载失败了,你记录一 下,我们待会儿再下载)

11 引擎:Hi!Spider,这是下载好的东西,并且已经按照老大的下载中间件处 理过了,你自己处

理一下(注意!这儿responses默认是交给def parse()这个函数处 理的)

12 Spider:(处理完毕数据之后对于需要跟进的URL),Hi!引擎,我这里有 两个结果,这个是我

需要跟进的URL,还有这个是我获取到的Item数据。

13 引擎:Hi !管道 我这儿有个item你帮我处理一下!调度器!这是需要跟进 URL你帮我处理下。

然后从第四步开始循环,直到获取完老大需要全部信息。

14 管道调度器:好的,现在就做!

注意!只有当调度器中不存在任何request了,整个程序才会停止,(也就是说,对于下载 失败的 URL**,Scrapy也会重新下载。)**

四、制作Scrapy爬虫步骤

1、安装Scrapy框架

      pip install scrapy

2、创建一个爬虫项目

  scrapy  startproject  SpiderDemo(项目名)

3、进入项目,创建一个爬虫样例

     cd SpiderDemo  先进入项目  
    scrapy genspider example example.com  创建爬虫样例,会出现example.py样例文件

样例代码解析

4、启动爬虫

 在启动之前需要关闭robot协议  settings 文件下: ROBOTSTXT\_OBEY =  true改为false

 启动名为 example 的爬虫     **scrapy crawl example**

5、文件的作用

    items.py: 表示定义一些获取数据的结构信息

    middlewares.py: 表示自定义中间处理过程

    pipelines.py: 用来存储及处理数据

    settings.py : 用来设置当前的爬虫 生成的

    example.py: 用来写我们请求及处理过程

五、实例

1、创建文件

在spiderDemo/spiders中新建一个文件JDCommentSpider

2、准备工作

寻找url,copy

找header,点击文件后,点击headers,下滑到最下面

3、代码实例

import scrapy
import re
import json

# 创建一个爬虫程序jdpc,定义类名jdpc,并且继承scrapy.Spider
class jdpc(scrapy.Spider):
    # 给爬虫创建名称
    name = 'jdpc'
    # 设置允许的域名
    allowed_domains = ['club.jd.com']

    header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36"
    }

    # 重写我们父类
    def start_requests(self):
        '''
              yield 返回一个迭代器,可以遍历数据
              url: str, 爬取的URL,双斜杠后是域名后后缀是.com
              callback: Optional[Callable] = None, 用来处理URL返回的 response 的方法
              method: str = "GET",  request的请求方式
              headers: Optional[dict] = None, 请求头,用于模拟浏览器
        '''
        url = 'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100009464799&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'
        yield scrapy.Request(url=url, headers=self.header, callback=self.myprocess)

    def myprocess(self, response: scrapy.http.Response):
        # 打印请求内容
        print(">>>" * 30)

        # 通过re.match进行正则匹配,获取完整的json内容
        response_match = re.match('(fetchJSON_comment98\()(.*)(\);)', response.text)

        # 通过json库转换成JSON对象
        json_res = json.loads(response_match.group(2).replace('\n', '').replace('\r', ''))
        # 获取comments中的value
        comments = json_res['comments']
        # 循环获取每条评论
        for comment in comments:
            creationTime = comment['creationTime']
            nickname = comment['nickname']
            productColor = comment['productColor']
            productSize = comment['productSize']
            content = comment['content']
            print(content, creationTime, nickname, productColor, productSize)

        print(">>>" * 30)

4、运行:在Python终端中输入scrapy crawl jdpc

CSDN大礼包:全网最全《全套Python学习资料》免费分享🎁

😝朋友们如果有需要的话,可以扫描下方二维码免费领取🆓

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
零基础Python爬虫数据分析与可视化从入门精通》是一本帮助零基础学习Python爬虫数据分析与可视化的书籍。通过阅读该书并实践书中的案例,读者可以从入门精通地掌握这些技术。 首先,书籍的第一部分主要介绍了Python的基础知识。包括Python的安装、基本语法、数据类型、条件语句、循环结构、函数、模块等内容。通过学习这些基础知识,读者可以对Python有一个全面的了解,并为后续的爬虫数据分析与可视化打下坚实的基础。 接下来,书籍的第二部分开始介绍爬虫的相关知识。包括HTTP协议、正则表达式、XPath、BeautifulSoup、Scrapy等内容。通过学习这些知识,读者可以了解爬虫的基本原理,并学会使用相关工具进行网页数据的抓取和解析。 然后,书籍的第三部分介绍了数据分析的相关知识。包括数据清洗、数据处理、数据可视化等内容。通过学习这些知识,读者可以了解如何处理和分析不同类型的数据,并使用常用的数据分析工具进行数据可视化。 最后,书籍的第四部分综合运用前面学习到的知识,通过实例项目来提高读者的实战能力。例如,通过爬取网站上的数据,然后进行数据分析和可视化展示。 综上所述,《零基础Python爬虫数据分析与可视化从入门精通》这本书通过详细的讲解和实例项目,帮助读者从零开始学习Python爬虫数据分析与可视化,并最终达到精通的水平。对于想要学习这些技术的读者来说,这是一本很好的入门指南。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值