基于Scrapy的爬虫爬取腾讯招聘网站岗位数据视频(见本头条号视频)
根据TIOBE语言排行榜更新的最新程序语言使用排行榜显示,python位居第三,同比增加2.39%,为什么会越来越火,越来越受欢迎呢,背后折射出的是人工智能、机器学习和大数据的普及程度和使用频率,首先python可以做web开发语言,可以做运维,可以做数据分析,可以做爬虫,可以做机器学习,可谓是万金油语言,今天给大家带来一个基于scrapy的爬虫和数据分析。

各个程序语言排行榜
本文将从以下三个方面进行介绍:
1、 what 基于python的scrapy是什么?
2、 How 如何安装scrapy?
3、 Where 在哪里使用,爬取过程
对于普通工薪族来说进入腾讯工作是他们毕生的梦想,那它的工作jd是怎么样的,要找什么样的人呢,薪资待遇是怎样的呢,带着这几个问题我们通过scrapy来爬取腾讯招聘网站的数据来了解吧。

腾讯招聘网站
1、 what 基于python的scrapy是什么?
Scrapy 是一个爬虫框架,为了爬取网站数据,提取结构性数据而编写。 可应用在包括数据挖掘,深度学习或存储历史数据等领域。
Scrapy,即Scraping data with Python。Scrapy 使用异步网络库Twisted来处理网络通讯,架构清晰,并且包含了各种中间件接口,满足不同年龄段不同人群的个性化需求。Scrapy 架构。

Scrapy 架构
引擎(Scrapy Engine)
负责组件之间数据的流转,它实现了并行化,类似于管道系统;
调度器(Scheduler)
接收requests,让它们老实在这里排队,以便后面下载器处理,requests中大部分都是url,体积较小,可想,即使有很多请求,也是没有关系的哈
下载器(Downloader)
下载器负责处理requests,抓取网页,并传递给引擎,之后抓取结果返回给spider;下载器是scrapy框架性能的中最重要的一环,机制复杂,总之,它限制了并发数,有管道长度的延迟;下载器的能力受限于CONCURRENT_REQUESTS*设置。
爬虫中间件(Spider Middlewares)
位于引擎和Spider之间,处理抓取器的输入和输出;当你想在spiders产生的Items到达Item Pipeline之前或response到达spider之前做一些处理,就用它;
爬虫(Spiders)
这部分是用户编写的可定制化的部分,负责解析response,产生items和url;它对Scrapy框架性能没啥影响,不是瓶颈哈;
项目管道(Item Pipeline)
负责处理spider产生的item;典型用途:清洗,验证,持久化等;Spider对每个Request可能产生几百个items,只有CONCURRENT_ITEMS会被并行处理;注意,当使用pipelines连接数据库时,pipelines的默认值是100,此时向数据库导入数据就会造成瓶颈问题了,因为items太多啊
下载器中间件(Downloader Middlewares)
位于下载器和引擎之间,处理传送到下载器的requests和传送到引擎的response;可以想象,当你要在requests到达下载器之前,或者,responses到达爬虫之前做一些预处理,那就要用这个玩意了;
2、 How 如何安装scrapy?
安装的方式有很多,这里提供比较简洁的安装方式。
(1)安装anaconda3.6,这里就不详细说它的安装步骤,读者可以自行百度安装即可,很简单,为啥安装它呢,因为它有很多安装好了的包,可以自己安装环境变量,又可以做数据分析,把爬来的数据,用它来进行分析一举两得,这也是很多数据工程师常用的方式。
下载地址:https://www.anaconda.com/distribution/

anaconda下载地址和版本
(2)打开终端,输入命令
conda list
查看当前anaconda里已经存在的包

没有安装过scrapy,那么可以现在进行安装。
输入命令conda install scrappy
anaconda就会自动帮你下载包
完成后,再输入命令:
conda install service_identity
(2)在pycharm里配置anaconda
File-》Settings-》Project interpreter-》找到你anaconda的安装路径下的python.exe添加进去即可

配置scrapy图
随便新建一个文件 import scrappy 运行不报错,即配置成功。
3、 Where 在哪里使用,爬取过程
把编写好的代码运行一下
运行方式既可以是在cmd 运行命令scrapy crawl tencent_jobs
也可以像下图一样运行

运行代码
核心代码如下图:

核心代码
代码架构

代码架构
我们还需要在mysql表 创建jobs表
sql_create_table = '''
create table jobs(job_name varchar (100),
location varchar (40),
type varchar (40),
needed_people_num varchar (5),
duty varchar (400),
requirement varchar (500)
)

mysql
执行代码:

程序运行图
查询结果:

查询结果

查询结果
总结:基于scrapy的爬虫操作简单,容易学习,如需更进一步,需要弄懂它的原理和方法,做到知其然知其所以然,才能真正进步,存入mysql后的数据用anaconda进行分析,将在下一次进行分享。欢迎各位朋友批评指正,如果想要详细代码的可以私信我。