scrapy框架写的第一个程序

一。学习scrapy框架

scrapy框架的学习,我们用一个实列来初步学习scrapy框架,框架的作用等等、。。。。。。。。。大家如果不知道可以百度
学习建议:
学习不等于ctrl+c
本篇文章不会提供源代码,大家可以按照我的思路去学习
其次就是不要轻易放弃

创建一个项目,开始爬取“好听轻音乐”里面的歌曲名字与作者保存在本地

我们现在本地创建一个文件夹名字自己随便写,我们在这个文件夹里面请添加图片描述
打开命令窗口之后我们输入

scrapy startproject mysider #medis是我们自己输入创建的scrapy框架项目名称

请添加图片描述
创建项目之后会自动生成一个文件夹
请添加图片描述
我们简单的介绍一下这些文件是干啥的
请添加图片描述
打开mysider
请添加图片描述

1。spiders文件夹里面有一个__init__.py 这里面我们用来写爬虫
2。_init.py 不能删除,虽然什么都没有但是不能删除
3。items.py 项目的目标文件,简单来说就是我们项目最后想要爬取到什么东西就写在这里面
4。middlewares.py 这个是中间件
5。pipelines.py 管道文件
6。settings.py 设置文件

第一步我们先把想要爬取的东西写入到项目目标(items.py)中去

请添加图片描述

标题第二部:写爬虫,我们在mspider中打开命令提示窗口,

请添加图片描述
请添加图片描述
创建之后我们就可以在请添加图片描述
我们用sublime这个软件打开
请添加图片描述
我们在musicSpider.py中写爬虫的时候不需要去写请求之类的,系统会自动帮我们完成

第三部 启动爬虫

在这下面打开cmd(命令提示符)
请添加图片描述
在命令行中输入
请添加图片描述
请添加图片描述

启动之后,会生成一个文件夹请添加图片描述
这里如果是第一次去做这个项目的同学肯定会遇到一些问题,大家不懂的就可以去百度,如果输出不了最后的music.html,大家可以配置一下在settings.py中配置 user-header,Referer,具体的我们后面讲,现在可以先去百度。。

接下来我们就可以开始我们的数据清洗

请添加图片描述
在这里我们又可以引入一个新的内容 yield 关键字
在以前我们的描写过程中我们是先把所有的内容都获取出来之后在一起传递出去,这样我们的效率就会变得很满
我们使用yield关键字可以得到一个值就传递一个值。
这里面的it 的这个值会传递到我们的管道文件中(pipelines.py)

管道文件 pipelines.py我们简单的介绍一下请添加图片描述

我们在使用管道的时候想要去settings.xml中配置一下请添加图片描述

我们在musicSpider.py 传递过来的值将在process_item()这个方法中调用,请添加图片描述
接下来我们在请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
这样我们一个简单的数据清洗就完成了

自动下一页继续查询

我们上面的一个实列只可以指定查询第一页而不可以查询第二页
其实这个换页查询也很简单,下面我们就可以描述一下我们的思路

  1. 我们在进行下一页的时候只需要知道下一的URL就可以了,而我们根据 网页中的下一页可以知道
  2. 第一页的地址是:http://www.htqyy.com/top/musicList/hot?pageIndex=0&pageSize=20
    第二页的地址是:http://www.htqyy.com/top/musicList/hot?pageIndex=1&pageSize=20
    第三页的地址是:http://www.htqyy.com/top/musicList/hot?pageIndex=2&pageSize=20
  3. 根据地址的规律我们可以得出地址中 只有 pageindex="" 这里面的值在改变
  4. 我们只需要先获取到url
  5. 然后用正则表达式获取到pageindex=“”中的值加一就可以在构造下一页的URL了
  6. 用一个if来判断pageindex=“”里面的值我们就知道我们获取的是多少页的值
  7. 最后 用yield关键字传递:scrapy.Request(我们创建的url,callback=self.parse)

请添加图片描述
之后我们在用cmd 执行scrapy crawl musicSpider 之后我们就可以得到music.text里面就保存了10页的歌曲名字和作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

O_0..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值