mysql scrapy 重复数据_大数据python(scrapy)爬虫爬取招聘网站数据并存入mysql后分析...

基于Scrapy的爬虫爬取腾讯招聘网站岗位数据视频(见本头条号视频)

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

a8f0615e87e1938bca65097698a37e10.png

各个程序语言排行榜

本文将从以下三个方面进行介绍:

1、 what 基于python的scrapy是什么?

2、 How 如何安装scrapy?

3、 Where 在哪里使用,爬取过程

对于普通工薪族来说进入腾讯工作是他们毕生的梦想,那它的工作jd是怎么样的,要找什么样的人呢,薪资待遇是怎样的呢,带着这几个问题我们通过scrapy来爬取腾讯招聘网站的数据来了解吧

3fa330211dd36b66f6f02792f1d8586c.png

腾讯招聘网站

1、 what 基于python的scrapy是什么?

Scrapy 是一个爬虫框架,为了爬取网站数据,提取结构性数据而编写。 可应用在包括数据挖掘,深度学习或存储历史数据等领域。

Scrapy,即Scraping data with Python。Scrapy 使用异步网络库Twisted来处理网络通讯,架构清晰,并且包含了各种中间件接口,满足不同年龄段不同人群的个性化需求。Scrapy 架构。

43b5e10e6936de772e18a7c9046dbed8.png

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/

363abe132cb3de697b5360038d22d4dd.png

anaconda下载地址和版本

(2)打开终端,输入命令

conda list

查看当前anaconda里已经存在的包

b1321337b468abece81c0df1ec50b0d9.png

没有安装过scrapy,那么可以现在进行安装。

输入命令conda install scrappy

anaconda就会自动帮你下载包

完成后,再输入命令:

conda install service_identity

(2)在pycharm里配置anaconda

File-》Settings-》Project interpreter-》找到你anaconda的安装路径下的python.exe添加进去即可

2bb9784dd644cef511e571623b74b2f2.png

配置scrapy图

随便新建一个文件 import scrappy 运行不报错,即配置成功。

3、 Where 在哪里使用,爬取过程

把编写好的代码运行一下

运行方式既可以是在cmd 运行命令scrapy crawl tencent_jobs

也可以像下图一样运行

937325d74f3568333b94f46beea90f9f.png

运行代码

核心代码如下图:

cce4a2b320fe9d0fccd0e6c2973a48a0.png

核心代码

代码架构

52c6c005acf313a65e628e504d7959b8.png

代码架构

我们还需要在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)

)

0315e2309d68c936495ade671f1f7264.png

mysql

执行代码:

810880e7fdef44882ce8f7a7795d125a.png

程序运行图

查询结果:

d342ffce94152e1b5731a909c0d9ddd7.png

查询结果

9d237518c569d4d46d6e6f00ddfb8e49.png

查询结果

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vim 文本一些行注释,替换

按键操作:注释:ctrlv 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如"#",再按Esc,就会全部注释了。删除:先按v,进入visual模式,横向选中列的个数(如"#"注释符号,需要…

如何在几分钟内安装Red Hat Container Development Kit(CDK)

作为负责开发容器化应用程序提供的可能性的应用程序开发人员或架构师,将所有工具集中在一起以使您入门时几乎没有帮助。 到现在。 红帽容器开发套件(CDK) 安装变得简单! 红帽提供了一个容器开发套件(CDK&#xff0…

vue的使用(引用/创建vue项目)(一)

在程序开发中,有三种方式创建vue项目,本地引入vuejs、使用cdn引入vuejs、使用vue-cli创建vue项目。其中vue-cli可以结合webpack打包工具使用,大大方便了开发步骤,使用广泛。 一、vue本地引用 在官网下载vue.js,通过s…

你不知道的JS5-原型

1、原型 [[prototype]] js中的对象有一个特殊的[[prototype]]内置属性,其实就是对于其他对象的引用,几乎所有的对象在创建时[[prototype]]属性都会被赋予一个非空的值 使用for..in和in操作符都会查找对象的整条原型链 所有普通的[[prototype]]链最终都会…

enum 定义3个属性_和平精英:合金龙骨有3个隐藏属性,比玛莎“水下无敌”还唬人...

欢迎诸位小伙伴们来到天哥开讲的《和平精英》“精英那点事儿”~接下来呢,咱们聊聊合金龙骨的3个隐藏属性、土豪玩家“自投罗网”以及游戏里的“公主病患者”等有趣的玩家游戏经历与发现~得,废话不多说了,还是各位小伙伴们熟悉的“老配方”&am…

vue-cli项目引用文件/组件/库 的注意事项(一)

vue引入的问题 (1)main.js入口文件引入(项目中所有的页面都会加载main.js,所以用户放全局变量) // Element import ElementUI from ‘element-ui’ import ‘element-ui/lib/theme-chalk/index.css’ Vue.use(ElementUI) (2&am…

java中缓冲区和缓存_Java中的Google协议缓冲区

java中缓冲区和缓存总览 协议缓冲区是一种用于结构化数据的开源编码机制。 它是由Google开发的,旨在实现语言/平台中立且可扩展。 在本文中,我的目的是介绍Java平台上下文中协议缓冲区的基本用法。 Protobuff比XML更快,更简单,并…

三十七 Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中...

Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中,判断URL是否重复 布隆过滤器(Bloom Filter)详解 基本概念 如果想判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定…

绩效管理的实际案例:2024年绩效提升重要方法

案例一:目标设定与衡量的艺术 背景:某科技公司每年都会为其全球员工设定年度目标。然而,这些目标往往过于模糊,导致员工不清楚自己需要完成什么。 问题:目标设定不清晰,导致员工感到困惑和不满。 解决方…

array python 交集_模糊数学Python库简介和评测

写在前面模糊数学是国内外许多工学、管理学研究生以上的选修甚至必修课程。但对于非数学专业而言,掌握模糊数学的各种计算方法、了解各种方法的用途(应用场景)其实要比理解模糊数学的“数学”理论要重要得多。目前在Matlab等数学工具中其实也…

使用Hibernate和Spring设置分布式Infinispan缓存

一个非常典型的设置–需要分布式缓存的spring / hibernate应用程序。 但是事实证明,设置并不是那么简单。 您显然需要缓存。 可以使用EhCache,Hazelcast,Infinispan,memcached,Redis,AWS的Elasticache以及…

Element UI 的使用

官方文档: https://element.eleme.io/#/zh-CN/component/installation 一、普通项目引入相关文件,使用elementui插件: (1)引入相关文件 (2)可以直接使用了 vue项目使用elementui 安装 &…

python基础十一之迭代器和生成器

可迭代 内置方法中含有__iter__的数据类型都是可迭代的,只要是可迭代的就可以使用for循环,反之亦然。 print(dir()) # dir()函数可以获取当前数据类型的所有内置方法 返回值是list print(__iter__ in dir([])) # 判断是否含有__iter__内置方法 迭代器…

架构设计器_大厂案例:马蜂窝大交通业务监控报警系统架构设计与实现

部门的业务线越来越多,任何一个线上运行的应用,都可能因为各种各样的原因出现问题:比如业务层面,订单量比上周减少了,流量突然下降了;技术层面的问题,系统出现 ERROR ,接口响应变慢了…

使用mpvue开发小程序

一、安装node.js 1、在官网中安装nodejs最新版本。地址:https://nodejs.org/en/download/,根据自己环境,进行下载安装。 2、安装完成后,进行nodejs版本及npm版本查看。 打开cmd命令行,输入 node -v 和 npm -v&#…

iOS----------UITextField实现过滤选中状态拼音

2018年上班的第二天,就这样背了一个大锅。我们项目中有一个搜索功能,在这一期的版本中,为了增强优化,去除了过滤空格的请求,这样或许能增加很好的用户体验,恰恰相反,偷鸡不成蚀把米。没想到苹果…

ai电磁组属于什么组_RPA+AI 创新案例挑战赛 2020 【专业组】amp;【校园组】优胜名单来也!...

大赛介绍本次大赛由 RPA 产业推进方阵为指导单位,来也科技为主办单位,面向所有来也科技合作伙伴及深圳地区大学生公开报名征集【专业组】&【校园组】参赛案例。RPA 产业推进方阵是在中国人工智能产业发展联盟指导下,由中国信息通信研究院…

GetSystemInfo()

关于“GetSystemInfo()”的详细信息,参考:https://msdn.microsoft.com/en-us/library/windows/desktop/ms724381(vvs.85).aspx Getting Hardware Information 例程:https://msdn.microsoft.com/en-us/library/windows/desktop/ms724423(vvs.8…

具有Spring Boot和Yeoman的单页Angularjs应用程序

我非常感谢yeoman之类的工具,它们提供了一种非常快速的方法来将不同的javascript库组合在一起成为一个一致的应用程序。 Yeoman提供了UI层,如果您需要开发服务层和静态资产的Web层,则打包的一种好方法是使用Spring Boot 。 我知道有像JHipste…

vue项目封装axios请求

目录: 一,src/utils/request.js import axios from axios import { getToken } from /utils/auth import store from /storeconst service axios.create({baseURL: process.env.VUE_APP_BASE_API,withCredentials: true,timeout: 5000,// headers:{ …