栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Scrapy爬虫项目的创建以及案例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Scrapy爬虫项目的创建以及案例

文章目录
    • 制作 Scrapy 爬虫 一共需要4步:
      • 首先要运行scrapy肯定需要下载组件
      • 创建一个Scrapy项目
      • 各组件配置

制作 Scrapy 爬虫 一共需要4步:
  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文件

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/360454.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号