wget -i all_plugins_urls.txt

或者用requests简单的遍历请求一下就完事了,就可以得到所有插件的数据,进而可以直接进入数据分析阶段了。为了作为演示吧,也算作是一个简单的scrapy的介绍,对于没有接触过scrapy的朋友来说,可以是一个很初步的入门介绍。

安装 scrapy

这一步最简单的方式就是pip安装

pip install Scrapy

scarpy -V# 验证一下

新建项目 (Project):新建一个新的爬虫项目

scrapy 提供了完善的命令工具可以方便的进行各种爬虫相关的操作。一般来说,使用 scrapy 的第一件事就是创建你的Scrapy项目。我的习惯是首先新建一个文件夹(用要爬的网站来命名,这样可以方便的区分不同网站的爬虫项目)作为总的工作区, 然后进入这个文件夹里新建一个 scrapy 的项目,项目的名字叫做 scrap_wp_plugins,可以改成你想要的名字

这样就会自动创建好类似如下的文件结构:

对我们这个需求来说,除了settings.py需要做一点点修改,其余文件都先不用管它,在这个简单的不能再简单的项目里都用不到。

目前只是一个空架子,啥也干不了,因为还没有爬虫文件,你可以完全纯手写,也可以用模板来生成一个。我们就用scrapy的命令行自动生成一个爬虫,语法格式是这样:

Syntax: scrapy genspider [-t template]

template 是要使用的爬虫的模板,默认的就是用最基本的一个。

name 就是爬虫的名字,这个可以随便取,等下要开始爬的时候会用到这个名字。好比给你的小蜘蛛取名叫“春十三”,那么在召唤它的时候你就可以大喊一声:“上吧!我的春十三!”

domain 是爬虫运行时允许的域名,好比说:“上吧!我的春十三!只沿着这条路线上!”

所以执行如下命令即可:

cdscrap_wp_plugins

scrapy genspider plugins_spider wordpress.org

这样就会在spiders文件夹下生出一个叫plugins_spider.py的爬虫文件,也就是在这里面可以填充一些爬取逻辑和内容解析。

制作爬虫(Spider):制作爬虫开始爬取网页

首先我们打开scrap_wp_plugins/plugins_spider.py看下里面的内容:

可以看出这就是一个最简单scrapy的Spider的类而已,自动填入了上一步用来创建爬虫时的一些参数。

name:爬虫的识别名,它必须是唯一的,在不同的爬虫中你必须定义不同的名字,就是上一步的命令行里写的plugins_spider.

start_urls:爬虫开始爬的一个URL列表。爬虫从这里开始抓取数据,所以,第一次下载的数据将会从这些URLS开始。其他URL将会从这些起始URL中继承性生成。具体来说,在准备工作那一部分,我们已经得到了一个urls的列表文件all_plugins_urls.txt,现在只需要把这个文件读取进来就好了。

parse():爬虫的方法,调用时候传入从每一个URL传回的Response对象作为参数,response将会是parse方法的唯一的一个参数,

这个方法负责解析返回的数据、匹配抓取的数据(解析为item)并跟踪更多的URL。在本项目中,因为返回的是json,不需要解析任何html,这里为了省事我就直接把json整个存储起来已备后面数据分析的时候再选择需要的字段,当然你也可以根据需要选择过滤掉不需要的json字段。

所以,我们的第一个爬虫就呼之欲出了!请看代码,麻雀虽小五脏俱全

运行爬虫

改完上面的爬虫代码,现在就可以让爬虫跑起来了,“上吧!比卡丘!”

scrapy crawl plugins_spider

哦嚯。。。

kv7Xgs.png

Forbidden by robots.txt

意外发生了。。。啥也没爬下来??自信看下报错信息,原来是 https://api.wordpress.org/robots.txt 规定了不允许爬虫,而scrapy默认设置里是遵守robot协议的,所以简单绕过就行了,打开 setttings.py, 找到下面这行,把True改为False,意思是:“爱咋咋地,我不理你的robots.txt ”

# Obey robots.txt rules

ROBOTSTXT_OBEY =True

现在就可以愉快的爬取了。还有一点温馨提示,如果爬取数量比较多,不想中途因为断网或者其他什么鬼知道的意外中断,导致下次又要重新来过,可以加上scrapy的执行日志来保存爬虫状态,下次就会从中断处开始继续爬取
文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
**

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

更多推荐