26个数据分析案例——第五站:基于Scrapy的架构的数据采集

26个数据分析案例——第五站:基于Scrapy的架构的数据采集

案例环境

  • Python: Python 3.x;

数据说明

  • title:课程标题
  • image_url:标题图片地址。
  • properties:课程性质。
  • stage:课程阶段。
  • enrollment:课程报名人数。

资料包

链接:https://pan.baidu.com/s/1-DUUUAOfpC4Gs5DAaHcgUg
提取码:5u6s

实验步骤

第一步:页面分析

在爬取某个网页中的数据之前,首先要学会如何去分析其页面的结构,我们想要的数据都在那个标签中,只有充分了解页面的整体结构才能够有效且快速的爬取数据。,本次实战案例将爬取慕课往的页面数据。
1、首先打开浏览器输入网址http://www.imooc.com/course/list
进入慕课网
在这里插入图片描述
2、在该页面任意空白区域,单击右键显示工具菜单,效果为:
在这里插入图片描述
3、单击“查看网页源代码(V)”查看网页源代码中的数据结构,并分析结构
在这里插入图片描述
从图中可以清晰的看出,

  • 每门课程的详细信息都包含在一个class名为“item free”的a标签中,
  • 课程标题包含在class为title ellipsis2的p标签中;
  • 课程正处于的阶段和报名的总人数包含在class为one的p标签中;
  • 课程性质被包含在class为“1”的span标签中;
  • 标题图片地址为class为“img”div标签的style属性值中。
    至此我们已经对页面中的数据结构有了一定的了解,下面我们就开始进行数据的采集。

第二步 编写代码采集数据

1、打开命令窗口,创建一个名为“InternetWorm”的Scrapy爬虫项目,命令如下所示。

scrapy startproject InternetWorm

结果为:
在这里插入图片描述
2、项目创建完成后进入InternetWorm项目的根目录,代码如下所示。

cd InternetWorm
scrapy genspider MySpider www.imooc.com/course/list

结果如图。
在这里插入图片描述
打开根目录中 的MySpider.py,并编写以下代码。

# -*- coding: utf-8 -*-
import scrapy
class MyspiderSpider(scrapy.Spider):
    name = 'MySpider'
    allowed_domains = ['imooc.com']
    start_urls = ['http://www.imooc.com/course/list/']
    def parse(self, response):
        pass

3、打开items.py ,在改文件中创建名为“CourseItem”的类,并定义好要爬取数据的相关字段。

# -*- coding: utf-8 -*-
# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html
import scrapy
class ScrapyprojectItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    pass
class CourseItem(scrapy.Item):
    # 课程标题
    title=scrapy.Field();
    # 标题图片地址
    image_url=scrapy.Field();
    # 课程性质
    properties=scrapy.Field();
    # 课程阶段
    stage=scrapy.Field();
    # 课程报名人数
    enrollment=scrapy.Field();
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值