Scrapy爬虫项目的创建及案例

Scrapy 爬虫:

  1. 新建项目 (scrapy startproject xxx):新建一个新的爬虫项目
  2. 明确目标 (编写items.py):明确你想要抓取的目标
  3. 制作爬虫 (spiders/xxspider.py):制作爬虫开始爬取网页
  4. 存储内容 (pipelines.py):设计管道存储爬取内容

首先要运行scrapy肯定需要下载组件

在Pycharm的terminal里运行如下命令,下载Scrapy

pip install Scrapy

创建一个Scrapy项目

#scrapy startproject 项目名
scrapy startproject qqmusic

创建好了之后如下图所示(QQMusicSpider.py和QQMusicSpider2.py是自己创建的
下面来简单介绍一下各个主要文件的作用:
scrapy.cfg: 项目的配置文件。
qqmusic/: 项目的Python模块,将会从这里引用代码。
qqmusic/items.py: 项目的目标文件。
qqmusic/pipelines.py: 项目的管道文件。
qqmusic/settings.py: 项目的设置文件。
qqmusic/spiders/: 存储爬虫代码目录。
在这里插入图片描述

各组件配置

item.py

import scrapy


class QqmusicItem(scrapy.Item):
    song_name = scrapy.Field()  # 歌曲
    album_name = scrapy.Field()  # 唱片专辑
    singer_name = scrapy.Field()  # 歌手
    interval = scrapy.Field()  # 歌曲时长

settings.py

#原来是True,改为False
ROBOTSTXT_OBEY = False
#下载等待时间 默认为3秒,去掉注释
DOWNLOAD_DELAY = 3

在这里插入图片描述
QQMusicSpider2.py

from scrapy import Request
from scrapy.spiders import Spider
from ..items import QqmusicItem
import json  # 引入json库


class MusicSpider(Spider):
    name = "music2"
    pass

    def start_requests(self):
        url = "https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?&topid=4"
        yield Request(url)

    def parse(self, response):
        json_text = response.text  # json格式化
        music_dict = json.loads(json_text)  # 加载json文件
        for one_music in music_dict["songlist"]:
            item = QqmusicItem()
            # 获取歌曲名称
            item["song_name"] = one_music["data"]["songname"]
            # 获取唱片
            item["album_name"] = one_music["data"]["albumname"]
            # 获取歌手
            item["singer_name"] = one_music["data"]["singer"][0]["name"]
            # 获取时长
            item["interval"] = one_music["data"]["interval"]
            yield item

init.py:注意是第二个qqmusic里的,不是spiders目录里的init.py
在这里插入图片描述

from scrapy import cmdline

cmdline.execute("scrapy crawl music2 -o music2.csv".split())

# 当然你也可以在terminal里运行scrapy crawl music2 -o music2.csv

爬取完成会生成music2.csv文件

おすすめ

転載: blog.csdn.net/qq_43278189/article/details/121063506
おすすめ