首页 文章 精选 留言 我的

精选列表

搜索[python],共10000篇文章
优秀的个人博客,低调大师

Python全栈 Web(jQuery 一条龙服务)

jQuery 1.jQuery介绍 jQuery是一个轻量级的JS库 - 是一个被封装好的JS文件,提供了更为简便的元素操作方式 核心理念:Write Less Do More jQuery版本: jQuery 2.x 不再支持IE6.7.8 jQuery 1.11.x 2.使用jQuery 1.引入jQuery文件 <script src="jquery-1.11.3.js"></script> 注意:jQuery文件的引入操作必须要放在其他jQuery操作之前 3.jQuery对象 1.什么是jQuery对象 jQuery对象是由jQuery对页面元素进行封装后的一种体现 jQuery中所提供的所有的操作都只针对jQuery对象,DOM对象不能用 2.工厂函数 - $() 作用: 1.能够获取 jquery对象 2.能够将DOM对象转

优秀的个人博客,低调大师

python爬取前程无忧分析一波机械职位信息

秋招这个时候已经开始了,正所谓知己知彼方能百战不殆,今天就从招聘网站下手分析一波机械的就业前景。 这次获取数据的网站是前程无忧,之所以选择前程无忧,是因为数据获取没有什么难度,再者前程无忧提供的岗位信息比智联招聘,拉勾提供的数据都多。 看了一下,前程无忧提供了 2000页/50条 数据,考虑到数据可能有些重复,这里获取 48569 条数据。 数据获取 用到的爬虫框架是 scrapy 解析库 xpath、re、pymongo 保存数据用 mongodb 数据处理用 pyecharts。 打开 https://www.51job.com/ 在搜索框输入机械,跳转到的网页是这个样子的: 这里面的字段还不足以满足我们的需求,还想获取职位描述,和公司的类型,例如国企还是民营等这些数据。于是我们点开看看每一条数据的字段。 具体字段 框起来的就是我们要获取的内容。 接下来上代码,使用scrapy 提供的默认模板创建爬虫项目。 class A51jobSpider(scrapy.Spider): name = '51job' allowed_domains = ['51job.com'] keyword = quote('机械') headers = { 'Host': 'search.51job.com', 'Referer': 'https://www.51job.com/', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } def start_requests(self): '''获取开始抓取的页面''' for i in range(1,1000): url = 'https://search.51job.com/list/000000,000000,0000,00,9,99,'+ self.keyword + ',2,{}.html'.format(str(i)) yield scrapy.Request(url=url,headers=self.headers,callback=self.parse_detial_url) def parse_detial_url(self,response): '''获取详情页的url''' s = etree.HTML(response.text) detail_urls = s.xpath('//*[@id="resultList"]/div/p/span/a/@href') for detial_url in detail_urls: url = detial_url yield scrapy.Request(url=url,headers=self.headers,callback=self.parse) 这里通过重写 start_request 获取详情信息图片的链接,接下来解析具体字段数据: def parse(self, response): '''解析详情页具体字段''' item = JixieItem() # 实例化类 s = etree.HTML(response.text) jobs = s.xpath('//div[@class="tHeader tHjob"]/div/div[1]/h1/text()') if jobs: item['job'] = jobs[0].strip() else: item['job'] = '' companys = s.xpath('//div[@class="tHeader tHjob"]/div/div[1]/p[1]/a[1]/text()') if companys: item['company'] = companys[0].strip() else: item['company'] = '' company_types = s.xpath('//div[@class="com_tag"]/p/text()') if company_types: item['company_type'] = company_types[0] else: item['company_type'] = '' data = s.xpath('//div[@class="tHeader tHjob"]/div/div[1]/p[2]/text()') if data: item['area'] = data[0].strip() item['experience'] = data[1].strip() item['degree'] = data[2].strip() salarys = s.xpath('//div[@class="tHeader tHjob"]/div/div[1]/strong/text()') if salarys: item['salary'] = salarys[0].strip() else: item['salary'] = '' describes = re.findall(re.compile('<div class="bmsg job_msg inbox">(.*?)div class="mt10"', re.S), response.text) if describes: item['describe'] = describes[0].strip().replace('<p>', '').replace('</p>','').replace('<p>','').replace('<span>','').replace('</span>','').replace('\t','') yield item items.py 文件了定义了具体的字段。items 是保存爬取数据的容器,使用方法和字典差不多。不过,相比字典,item 多了额外的保护机制,可以避免拼写错误或者定义字段的错误。 class JixieItem(scrapy.Item): # 定义抓取的字段 job = Field() company = Field() company_type = Field() area = Field() experience = Field() degree = Field() salary = Field() describe = Field() 接下来把数据保存到 MongoDB 中,这里的代码格式是一样的,几乎不需要修改就可以从 scrapy 的文档中拿过来用: class MongoPipeline(object): def __init__(self,mongo_uri,mongo_db): self.mongo_uri = mongo_uri self.mongo_db = mongo_db @classmethod def from_crawler(cls,crawler): return cls( mongo_uri = crawler.settings.get('MONGO_URI'), mongo_db = crawler.settings.get('MONGO_DB') ) def open_spider(self,spider): self.client = pymongo.MongoClient(self.mongo_uri) self.db = self.client[self.mongo_db] def process_item(self,item,spider): name = item.__class__.__name__ self.db[name].insert(dict(item)) return item def close_spider(self,spider): self.client.close() 数据获取成功,看一下数据: 数据分析 这一部分才是重头戏 先看一下学历占比: 学历占比 可以看到硕士需求不多,并不是说需求不多,而是在大的环境下,相对来说少。这里的大环境是指据统计全国本科及以上学历比例不到 10% 细心的小伙伴在求职时可以发现虽说公司打着学历要求不高,可任职要求已经完全超出了对学历的要求,所以能提高学历尽力提高学历,提高竞争力。 再来看一下工作经验在机械中的要求: 工作经验 可以看到机械相关职位在招聘时对工作经验的要求占了很大的一部分,这对应届毕业生求职来说可是个好消息。同时看到五年以后的需求没有那么大了,这是招聘公司不需要工作经验久的员工了吗? 猜测 1、对于机械行业来说,公司福利待遇基本上一样,求职者在五六年经验后,基本生活工作稳定,不会再想着跳槽从新开始。 2、现在招聘旺季是给应届毕业生。 公司类型 虽说民营公司占了大部分,但是能去国企还是尽量去国企。在同等情况下上市公司和有融资的公司都是不错的选择(工资高,福利好),当然在你拿到对应 offer 再说吧。 机械词云图.jpg 这里是根据职位描述生成的词云图,由于数据量比较大,这张图的参考价值不是很大,其实是想获取哪些具体的专业技能要求最多,但还是看出绘图软件需求高一些。同时不能忽略软实力的重要,办公软件也是要熟练掌握的。 总结 综上所述,机械的就业前景还是挺不错的,同时自身实力过硬也是必须的。没事的时候看看招聘网站上的任职要求和自身实力匹配一下,补充一下自身实力,在招聘的时候才能有所进退。 最后点赞是一种态度。

优秀的个人博客,低调大师

手把手 | 如何用Python做自动化特征工程

机器学习越来越多地从手动设计模型转变为使用H20,TPOT和auto-sklearn等工具来自动优化的渠道。这些库以及随机搜索等方法旨在通过查找数据集的最优模型来简化模型选择和转变机器学习的部分,几乎不需要人工干预。然而,特征工程几乎完全是人工,这无疑是机器学习管道中更有价值的方面。 特征工程也称为特征创建,是从现有数据构建新特征以训练机器学习模型的过程。这个步骤可能比实际应用的模型更重要,因为机器学习算法只从我们提供的数据中学习,然而创建与任务相关的特征绝对是至关重要的。 通常,特征工程是一个漫长的手动过程,依赖于专业的领域知识,直觉和数据处理。这个过程可能非常繁琐,而且最终的特征将受到人类主观性和时间的限制。自动化特征工程旨在通过从数据集中自动创建许多候选特征来帮助数据科学家,并从中可以选择最佳特征用于训练。 在本文中,我们将使用P

资源下载

更多资源
Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册