"""
采集51job职位数量画图后发邮件
"""
import re
import matplotlib.pyplot as plt
from my_email import Emailimport requests
from lxml import etreedef get_job_data():headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36','Referer': 'https://search.51job.com/list/040000,000000,0000,00,9,99,java,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=',}keywords = ['java', 'php', 'c++', 'web 前端', 'ios', 'Android', '产品经理', '软件测试', 'UI设计师', 'Python', 'Python web','Python 测试', 'Python 数据', 'Python 爬虫']data_list = []for keyword in keywords:try:# 注意:关键字经过2次url编码keyword_quote = requests.utils.quote(keyword)keyword_quote = requests.utils.quote(keyword_quote)url = f'https://search.51job.com/list/040000,000000,0000,00,9,99,{keyword_quote},2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare='response = requests.get(url, headers=headers)response_str = response.content.decode('gbk')html = etree.HTML(response_str)job_count_elements = html.xpath('//div[@class="rt"]/text()')job_count = job_count_elements[0] if job_count_elements else ''search_job_count = re.search(r'\d+', job_count)job_count = search_job_count.group() if search_job_count else None# print(keyword, job_count)data_list.append((keyword, job_count))except Exception as e:print(e)return data_listif __name__ == '__main__':data_list = get_job_data()print(data_list)# 画图jobs = [tuple1[0] for tuple1 in data_list]counts = [int(tuple1[1]) for tuple1 in data_list]x = range(len(jobs))y = countsplt.figure(figsize=(20, 8), dpi=100)plt.bar(x, y, width=0.5)plt.xticks(x, jobs)plt.grid(linestyle='--', alpha=0.5)plt.title('51job职位搜索')# plt.show()ret = plt.savefig('51job.png')# 发邮件email = Email("414566019@qq.com", "")subject = '51job每周职位数量统计'receivers = ['414566019@qq.com', '2434825855@qq.com']email.send_email_img(subject, data_list, receivers, '51job.png')

采集51job职位数量画图后发邮件相关推荐

  1. 简单爬虫+pyecharts分析前途无忧招聘职位数量

    爬虫+pyecharts分析前途无忧招聘职位数量 关于pyecharts的安装与使用可参考:http://pyecharts.org/#/zh-cn/intro 代码如下 from pyecharts ...

  2. 用爬虫程序批量采集拉勾网职位招聘信息

    大数据(Big Data)是指那些超过传统数据库系统处理能力的数据.它的数据规模和转输速度要求很高,或者其结构不适合原本的数据库系统.为了获取大数据中的价值,我们必须选择另一种方式来处理它.    数 ...

  3. [Python] scrapy + selenium 抓取51job 职位信息(实现 传参 控制抓取 页数+职位名称+城市)

    目录 一.目标 二.51job网页分析: 1.网页构成观察 2.网页分析 三.代码实现 1. 踩过的坑-----实现城市选择 2.代码实现 3.代码优化 1)存放格式优化 2)在爬虫中去掉\xa0\x ...

  4. Python Scrapy爬虫框架爬取51job职位信息并保存至数据库

    Python Scrapy爬虫框架爬取51job职位信息并保存至数据库 -------------------------------- 版权声明:本文为CSDN博主「杠精运动员」的原创文章,遵循CC ...

  5. 爬取51job职位信息--进行专业市场需求可视化分析(python、tableau、DBeaver)

    爬取51job信管专业相关岗位的情况进行可视化分析. 采用工具:python.tableau(可视化).DBeaver(数据库管理软件) 文章目录 一.数据爬取 1.1导入相关的库 1.2对每个岗位搜 ...

  6. Python爬虫51job职位

    import urllib.request #请求 import re import xlwt import DBUtilsdef getContent(job,pag):hd = {"Us ...

  7. 爬取51job职位信息之编码问题

    兴趣来潮,爬了下51job,但是遇到编码问题!以下是简单的一段代码 获取整个页面数据 # -*- coding:utf-8 -*- import requests import sysreload(s ...

  8. R049---UiPath发不定数量附件outlook邮件

    一.缘起 通过UiPath发送Outlook邮件,可以附加多个附加,其中一个方法是点击工具界面中的"附加文件": 在弹出界面中多行里,输入多个文件路径,实现附加多个文件: 通过变量 ...

  9. 怎么防爬虫爬取信息_scrapy爬取51job职位信息(针对新的反爬虫机制)!

    1 定义抓取内容 在items.py中添加如下代码: class Job51Item(scrapy.Item):title = scrapy.Field()salary = scrapy.Field( ...

  10. java流行的测试框架调研+市面上书籍调研

    主要是根据51job的右侧来判断 java测试框架名称 51job职位数量 百度词条数量 JUnit 732 48,500,000 REST Assured 3 19,500,000 Selenium ...

最新文章

  1. Linux常用命令汇总(持续更新中)
  2. 编译与部署dubbo管控平台dubbo-admin
  3. [Node.js]回调函数
  4. iOS 添加字体并使用
  5. Linux Capabilities 入门教程--基础实战篇
  6. php 显示数据库操作错误,php操作mysql数据库编码错误
  7. hibernate多对一单向外键
  8. lumanager mysql密码_LuManager单独安装mysqli
  9. 铃儿响叮当用计算机怎么弹,铃儿响叮当钢琴弹奏教学视频
  10. 使用MUI框架实现JQ购物车增减
  11. ns2 java_【NS2】用eclipse调试NS2(转载)
  12. 逢看必会的三子棋小游戏:原来可以这么简单
  13. 【NVMe2.0b 9】控制器初始化过程
  14. 《图解HTTP》全文笔记梳理
  15. python指南针_用形状文件或地质指南针绘制遮住的南极洲
  16. 第二课《shell 编程基础》
  17. win8宽带连接服务器未响应,关于Win8系统连接宽带错误的解决方法介绍
  18. 电力电子技术的matlab实践 下载,电力电子技术MATLAB仿真实践指导及应用
  19. 微信小程序scroll-view滑动卡顿,下滑时向上滑动失效
  20. DDR 内存 ECC 纠错

热门文章

  1. html鼠标悬停box变色,ToolTip鼠标悬停的使用
  2. 【干货】梁宁产品思维50页PPT丨从一无所有,到整个世界(提供高清下载)
  3. “熵减”之下,欧瑞博填补全屋智能国产操作系统空白
  4. ORACLE 提取汉字拼音首字母及汉字排序
  5. ARINC818(FC-AV)协议,ADVB
  6. 【阿里巴巴Java编程规范学习 二】Java基本编程规约(下)
  7. Windows下 Java9安装教程
  8. windows快速创建文本文档的几个方法快捷键和
  9. 求助文章#C语言 #普中51单片机开发板
  10. android上的自由软件,Android十款生活必备软件推荐