从零开始学Scrapy网络爬虫(一)
本文内容来自 张涛的《从零开始学Scrapy网络爬虫》
1.创建项目
(相关资料图)
首先创建一个项目,项目名为QQMusicscrapy startproject QQMusic
2.使用Item封装数据
打开项目QQMusic中的items.py源文件。添加榜单歌曲字段,实现代码如下:
import scrapyclass QqmusicItem(scrapy.Item): song_name = scrapy.Field() # 歌曲 album_name = scrapy.Field() # 唱片 singer_name = scrapy.Field() # 歌手 interval = scrapy.Field() #时长
3.创建Spider文件及Spider类
在Spider文件中新建music.py文件。在music.py中定义MusicSpider类,实现爬虫功能,代码如下:
# -*- coding:utf-8-*-from scrapy import Requestimport syssys.path.append("D:\\pythonProject\\scrapy\\QQMusic")from scrapy.spiders import Spider # 导入Spider类from QQMusic.items import QqmusicItem # 导入Item类import json # 导入JSON库class MusicSpider(Spider): name = "music" #定义headers属性,设置用户代理(浏览器类型) headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"} def start_requests(self): # 获取初始请求 url = "https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?&topid=4" # 生成请求对象 yield Request(url,headers=self.headers) def parse(self, response): # 数据解析 item = QqmusicItem() # 生成QqmusicItem对象 # 获取json格式的数据 json_text = response.text #使用json.loads解码json数据,返回Python数据类型 # 这里的music_dict是一个字典类型 music_dict = json.loads(json_text) # for循环遍历每首歌曲 for one_music in music_dict["songlist"]: # 获取歌曲 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
首先要导入JSON库,用于解析JSON格式数据。在start_request()方法中,url为访问服务器中fcg_v8_toplist_cp.fcg文件的地址。原文中查找改url是通过如下方法: 而我自己打开时没有找到fcg_v8_toplist_cp.fcg文件,不知道是哪里出了问题在parse()方法中,首先生成QqmusicItem对象,用于保存结构化数据;然后使用JSON库中的load()方法解码获取到的JSON格式数据,返回Python的数据类型(这里是字典型);最后使用for循环遍历每首歌曲,将其保存在Item中。
4.运行爬虫
至此,本项目所有的功能全部实现,运行爬虫程序。
scrapy crawl music -o music.csv
5.查看结果
标签:
相关推荐:
最新新闻:
- 如何将图像数据编码为比特流?转换方法步骤
- PF的关键字顺序有多灵活?PF防火墙最详细教程
- 天天速讯:页面自动跳转怎么操作?javascript实现网页自动跳转的5种方法
- 国外开发API,api地址、Authentication认证
- hcie培训价格多少钱?线上培训和线下面授的区别在哪里?|重点聚焦
- 华为t2010怎么刷机?华为t2010刷机教程及评测_全球今日报
- 当前速讯:Centos6.9域名942sh.com在阿里云注册
- windows7桌面图标怎么改大小?修改方法步骤
- iphone4s怎么设置彩信?iphone4s联通卡彩信设置方法
- 什么软件修图较好?图片处理有哪些技巧?
- 从零开始学Scrapy网络爬虫(一)
- 国内常用的ntp服务器 国内常用NTP服务器地址及IP_环球新视野
- rocketdock怎么操作?rocketdock教程之程序设置-环球热消息
- ssh/authorized_keys软件安装教程 天天视讯
- 当前速读:QQ火炬手图标怎么关闭?关闭图标方法介绍
- 【世界速看料】戴森v7v8v10什么区别?V6和V8的区别介绍
- linux主机的详细介绍 linux主机安装的八个步骤_全球讯息
- 环球速读:富可视m310怎么刷机?富可视m310刷机教程
- 天天观焦点:Docker基于镜像 可以秒级启动各种容器
- 手机wifi密码破解器哪个好用?手机wifi密码破解器介绍
- 天天即时:淘宝拥有注册会员1.7亿 注册用户不断增长
- 手摇甘蔗榨汁机怎么样?品牌有哪些? 天天视讯
- androidstudio发现环境坏了 jdk出问题了?
- 天天信息:linux内核编译ccflag,linux-内核编译 centisecs文件控制内核参数
- 天天视点!SVN系列教程-第四章-TortoiseSVN使用大全
- flink-cdc解析:BaronND/connectors
- 全球今头条!连连支付怎么样?连连靠谱吗?
- 每日关注!identity字段怎么使用?identity字段的基本用法及使用方法
- 惠普笔记本电脑 设备管理器中双击未知设备的解决方案|每日播报
- 【盗梦空间】潜行凶间(港)全面启动
- AngularJS中的refresher该如何使用?使用技巧|动态
- 联想s720i配置怎么样?联想s720i配置总结|热文
- 【证书】PFX证书、CER证书申请流程详解
- dockerexec-itoracle11g创建容器实例分享
- PocketTrail实现拖尾效果的脚本及说明|焦点短讯
- 当前报道:功放如何连接?功放机接线图详解
- 手机无限重启或无法开机怎么办?索爱st25i强刷教程及注意事项 快报
- 头条:绿色出行新方式:共享汽车APP的交互体验
- 环球观焦点:B站视频播放源地址获取及B站视频下载
- 复旦壁纸:手绘正校门1024、7681280
- 佳能IP1180怎么样?佳能IP1180详情介绍
- 天天热门:象棋里的卧槽马是什么?典型案例分享
- 无法访问文件夹怎么办?无法访问文件夹的原因和解决方法-焦点速看
- 设计带构造函数的Dog类 对数据成员进行初始化
- 焦点报道:薛定谔的猫和EPR佯谬——量子力学史上的经典术语
- 网银无法登陆怎么办?网上银行登录安全控件
- 联想昭阳E46G能玩魔兽世界吗?显卡集显特效开起来根本没办法玩
- 最新:在百度里下载格式工厂——KuGo格式
- speedtest-cli|网速测试工具命令行方式
- 【数据更新】全国上网卡专属号段数据汇总
- 【世界时快讯】《满江红》让杭州岳王庙成热门打卡地:秦桧像曾被砸烂9次
- 【世界快播报】《如龙:维新!极》“复仇之刃”预告 全新截图欣赏
- 音游《最终幻想:节奏剧场》试玩版2月1日上线
- 【环球速看料】《死亡空间:重制版》开发者讨论该系列未来发展
- 索尼承诺在PSVR2发行前“增加PS5主机供应”:全球要闻
- 财报预警!三大航空公司合计预亏超千亿,昔日养猪巨头亏损超百亿
- 郭明錤:可折叠iPad或明年问世,今年苹果可能不会发新品,出货至少下降10%
- 热点在线丨《死亡空间》重制版不支持Steam deck
- 三星新款翻转笔记本曝光:高配13代i9-13900H
- NBC季度亏损10亿!好于华尔街预期
- 无人驾驶出租?旧金山表示先缓缓_世界新资讯
- 联想拯救者新品将用上超频内存 支持DDR5-6000_环球快看点
- 突发!伦敦街头惊现《战神》利维坦之斧:外观霸气 地面开裂
- 全球观热点:青海春天药用资源科技股份有限公司 2022年度业绩预亏暨风险提示公告
- Xbox金会员2月会免游戏公布 《为了吾王》等
- 兔年首个交易日,两大股东公告“抢筹”兴业银行
- 【世界热闻】曝百度将推人工智能聊天工具:类似ChatGPT
- 环球微动态丨腾讯游戏春节7天吸金破4.5亿:《王者荣耀》收入超3千万!
- 国产《时灵:星辰愚者》2月14日发售 登陆PS5/PC/NS
- 暴雪游戏国服“头七” 你找到合适的平替游戏了吗?
- 《流浪地球2》MOSS和末日铁拳是一个配音演员:给破球来个上勾拳!:世界快消息
- 【环球速看料】PS5广告:奎爷利维坦巨斧现身英国伦敦
- 效仿印尼,全球第二大镍生产国菲律宾考虑对镍出口征税
- 摩根士丹利“大空头”警告:不要参与反弹行情,美股熊市还没结束
- 消费者遭遇特步反向抹零 特步回应:系统设置四舍五入