爬虫-前程无忧-python职位

# -*- coding: utf-8 -*-
import requests
import re

url = "https://search.51job.com/list/170200,000000,0000,00,9,99,python,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="
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
    "Referer":"https://www.51job.com/"
}#F12,network-刷新-第一个文件-找headers

r = requests.get(url,headers=headers)
# print(r.text)#有乱码,<meta http-equiv="Content-Type" content="text/html; charset=gbk">可以看到头部有编码格式改为下面语句
html = r.content.decode("gbk")
# print(html)
# <a target="_blank" title="PHP软件测试工程师/初级" href="https://jobs.51job.com/guangzhou-thq/108918914.html?s=01&t=0"  οnmοusedοwn="">
#                     PHP软件测试工程师/初级                </a>
# <a target="_blank" title="嵌入式软件测试工程师" href="https://jobs.51job.com/guangzhou-thq/116461929.html?s=01&t=0"  οnmοusedοwn="">
#                     嵌入式软件测试工程师                </a>
# <a target="_blank" title="软件测试工程师" href="https://jobs.51job.com/shenzhen-ftq/116482190.html?s=01&t=0"  οnmοusedοwn="">
#                     软件测试工程师                </a>

# 得到职位名和url
# job_info_regex='<a target="_blank" title="(.*?)" href="(.*?)"  οnmοusedοwn="">\s\s.*?</a>'
# job_name_url=re.findall(job_info_regex,html)
# 得到公司名
# company=re.findall('<span class="t2"><a target="_blank" title=".*?" href=".*?">(.*?)</a></span>',html)
# print(company)
# 得到职位地址
# position=re.findall('<span class="t3">(.*?)</span>',html)
# print(position)

# 得到薪资
# salary=re.findall('<span class="t4">(.*?)</span>',html)
# print(salary)

# 发布时间
# addtime=re.findall('<span class="t5">(.*?)</span>',html)
# print(addtime)

# 合并多个列表
# infos=list(map(lambda w,x,y,z,a:{'name':w[0],'url':w[1],"company":a,'position':x,"salary":y,'addtime':z},job_name_url,position[1:],salary[1:],addtime[1:],company))#注意后面三个从1开始,一定要注意
# for once in infos:
#     print(once)

# 一次性的取出 某一个系列,然后再把多个值合并到一个,可能会出现的一个问题是,如果有的信息没有,就会导致,多个序列的长度不同,然后拼接的时候,就会有问题
# 我们先把每一个大的条目取出来


all_div=re.findall('<div class="el">(.*?)</div>',html,re.DOTALL) # re.DOTALL 模式,是点可以匹配所有,包括换行
for once_div in all_div:
    job_info_regex = '<a target="_blank" title="(.*?)" href="(.*?)"  οnmοusedοwn="">\s\s.*?</a>'#注意换行要用\s\s,空格要保持一致
    job_name=re.search(job_info_regex,once_div).group(1)
    job_url=re.search(job_info_regex,once_div).group(2)
    company=re.search('<span class="t2"><a target="_blank" title=".*?" href=".*?">(.*?)</a></span>',once_div).group(1)
    position = re.search('<span class="t3">(.*?)</span>', once_div).group(1)
    salary = re.search('<span class="t4">(.*?)</span>', once_div).group(1)
    addtime = re.search('<span class="t5">(.*?)</span>', once_div).group(1)
    print({"job_name":job_name,"job_url":job_url,"company":company,"position":position,"salary":salary,"addtime":addtime})
C:\Anaconda3\python.exe D:/AI/02-Python高级/01爬虫PPT/day2_正则表达式和BeautifulSoup/day2_正则表达式和BeautifulSoup/demo2-前程无忧.py
{'job_name': '少儿编程老师-Python', 'job_url': 'https://jobs.51job.com/jinshuiqu/121609636.html?s=01&t=0', 'company': '卡巴Kabba(郑州)青少年教育', 'position': '郑州-金水区', 'salary': '6-8千/月', 'addtime': '05-20'}
{'job_name': 'Python开发工程师助理', 'job_url': 'https://jobs.51job.com/zhengzhou/122058252.html?s=01&t=0', 'company': '河南艾茵斯物联网科技有限公司', 'position': '郑州', 'salary': '4.5-6千/月', 'addtime': '05-20'}
{'job_name': '人工智能开发(Python方向)', 'job_url': 'https://jobs.51job.com/zhengzhou-gxq/119497073.html?s=01&t=0', 'company': '郑州百尚网络科技有限公司', 'position': '郑州-高新区', 'salary': '5-8千/月', 'addtime': '05-20'}
{'job_name': 'Python开发工程师', 'job_url': 'https://jobs.51job.com/nanyang/121955821.html?s=01&t=0', 'company': '郑州软通合力计算机技术有限公司', 'position': '异地招聘', 'salary': '5-7千/月', 'addtime': '05-20'}
{'job_name': 'Python开发工程师', 'job_url': 'https://jobs.51job.com/zhengzhou-gxq/122075209.html?s=01&t=0', 'company': '河南省曲速信息科技有限公司', 'position': '郑州-高新区', 'salary': '4-7千/月', 'addtime': '05-18'}
{'job_name': 'Python开发工程师', 'job_url': 'https://jobs.51job.com/zhengzhou-gxq/114132614.html?s=01&t=0', 'company': '郑州郑大信息技术有限公司', 'position': '郑州-高新区', 'salary': '6-8千/月', 'addtime': '05-13'}
{'job_name': 'Python开发讲师', 'job_url': 'https://jobs.51job.com/zhongyuanqu/115921005.html?s=01&t=0', 'company': '河南新华电脑学院', 'position': '郑州-中原区', 'salary': '0.8-1万/月', 'addtime': '05-13'}
{'job_name': 'Python高级开发工程师', 'job_url': 'https://jobs.51job.com/pingdingshan/119809077.html?s=01&t=0', 'company': '河南蓝狐文化传播有限公司', 'position': '异地招聘', 'salary': '1-1.5万/月', 'addtime': '05-06'}
{'job_name': 'Python开发工程师', 'job_url': 'https://jobs.51job.com/zhengzhou/120496875.html?s=01&t=0', 'company': '爱立信信息技术服务(中国)有限公...', 'position': '郑州', 'salary': '0.8-1.4万/月', 'addtime': '05-06'}
{'job_name': 'Python语言开发工程师', 'job_url': 'https://jobs.51job.com/zhengzhou/118131377.html?s=01&t=0', 'company': '郑州李唐电子科技有限公司', 'position': '郑州', 'salary': '1-3万/月', 'addtime': '05-03'}
{'job_name': 'python c嵌入式工程师', 'job_url': 'https://jobs.51job.com/jinshuiqu/120727796.html?s=01&t=0', 'company': '河南元丰科技网络股份有限公司', 'position': '郑州-金水区', 'salary': '0.4-1万/月', 'addtime': '04-29'}
{'job_name': 'python后端开发', 'job_url': 'https://jobs.51job.com/sanmenxia/114009644.html?s=01&t=0', 'company': '三门峡崤云安全服务有限公司', 'position': '异地招聘', 'salary': '0.6-1.2万/月', 'addtime': '04-28'}
{'job_name': '高新诚聘Python开发工程师', 'job_url': 'https://jobs.51job.com/jinshuiqu/120274938.html?s=01&t=0', 'company': '河南卡通卡电子科技有限公司', 'position': '郑州-金水区', 'salary': '0.8-1万/月', 'addtime': '03-27'}
{'job_name': 'Java开发工程师', 'job_url': 'https://jobs.51job.com/jinshuiqu/115034830.html?s=01&t=0', 'company': '河南弥纶软件科技有限公司', 'position': '郑州-金水区', 'salary': '0.8-2万/月', 'addtime': '05-20'}
{'job_name': '测试实习生(郑州)', 'job_url': 'https://jobs.51job.com/zhengzhou/120800822.html?s=01&t=0', 'company': '亚信科技(中国)有限公司', 'position': '郑州', 'salary': '', 'addtime': '05-20'}
{'job_name': '高级后端开发工程师', 'job_url': 'https://jobs.51job.com/jinshuiqu/121192673.html?s=01&t=0', 'company': '上海语德教育科技有限公司', 'position': '郑州-金水区', 'salary': '1-1.5万/月', 'addtime': '05-20'}
{'job_name': '平台运维工程师', 'job_url': 'https://jobs.51job.com/guanchenghuizuqu/118230116.html?s=01&t=0', 'company': '北京会畅教育科技有限公司', 'position': '郑州-管城回族...', 'salary': '0.6-1.2万/月', 'addtime': '05-20'}
{'job_name': 'Linux系统开发构建工程师(J10293)', 'job_url': 'https://jobs.51job.com/tianjin-bhxq/122194701.html?s=01&t=0', 'company': '天津麒麟信息技术有限公司', 'position': '异地招聘', 'salary': '1-1.5万/月', 'addtime': '05-20'}
{'job_name': '软件研发工程师(000407)(郑州)', 'job_url': 'https://jobs.51job.com/zhengzhou/106162539.html?s=01&t=0', 'company': '软件与服务中心', 'position': '郑州', 'salary': '', 'addtime': '05-20'}
{'job_name': '软件测试工程师', 'job_url': 'https://jobs.51job.com/zhengzhou-gxq/49448882.html?s=01&t=0', 'company': '云计划软件科技(上海)有限公司', 'position': '郑州-高新区', 'salary': '6-8千/月', 'addtime': '05-20'}
{'job_name': '软件工程师(高薪)', 'job_url': 'https://jobs.51job.com/zhengzhou-gxq/121039739.html?s=01&t=0', 'company': '郑州锐晶裕华新能源有限公司', 'position': '郑州-高新区', 'salary': '6-8千/月', 'addtime': '05-20'}
{'job_name': 'IDC技术支持(包住宿)', 'job_url': 'https://jobs.51job.com/zhongyuanqu/81331426.html?s=01&t=0', 'company': '郑州萤火虫信息科技有限公司', 'position': '郑州-中原区', 'salary': '3-4.5千/月', 'addtime': '05-20'}
{'job_name': '数据开发工程师', 'job_url': 'https://jobs.51job.com/zhengzhou-gxq/122022927.html?s=01&t=0', 'company': '中科卓望', 'position': '郑州-高新区', 'salary': '0.8-1万/月', 'addtime': '05-20'}
{'job_name': '物体识别软件开发工程师', 'job_url': 'https://jobs.51job.com/guanchenghuizuqu/122162501.html?s=01&t=0', 'company': '深圳市天龙科技有限公司郑州分公司...', 'position': '郑州-管城回族...', 'salary': '0.4-1.5万/月', 'addtime': '05-20'}
{'job_name': 'ETL开发工程师(郑州)', 'job_url': 'https://jobs.51job.com/zhengzhou/121120631.html?s=01&t=0', 'company': '上海乐九医疗科技有限公司', 'position': '郑州', 'salary': '0.6-2万/月', 'addtime': '05-20'}
{'job_name': '数据库开发工程师(大数据城市)', 'job_url': 'https://jobs.51job.com/zhengzhou/119215468.html?s=01&t=0', 'company': '深圳市华傲数据技术有限公司', 'position': '郑州', 'salary': '1-1.5万/月', 'addtime': '05-20'}
{'job_name': '渗透测试工程师/安全工程师(双休、五险)', 'job_url': 'https://jobs.51job.com/jinshuiqu/122010186.html?s=01&t=0', 'company': '河南信服达科技有限公司', 'position': '郑州-金水区', 'salary': '6-8千/月', 'addtime': '05-20'}
{'job_name': '大数据开发工程师', 'job_url': 'https://jobs.51job.com/jinshuiqu/118825416.html?s=01&t=0', 'company': '珠海高凌信息科技股份有限公司', 'position': '郑州-金水区', 'salary': '1-1.5万/月', 'addtime': '05-20'}
{'job_name': '软件测试工程师', 'job_url': 'https://jobs.51job.com/zhengzhou/117282935.html?s=01&t=0', 'company': '郑州威科姆科技股份有限公司', 'position': '郑州', 'salary': '6-8千/月', 'addtime': '05-20'}
{'job_name': '享道出行-郑州运营主管', 'job_url': 'https://jobs.51job.com/zhengzhou/120232262.html?s=01&t=0', 'company': '上海赛可出行科技服务有限公司', 'position': '郑州', 'salary': '1-1.5万/月', 'addtime': '05-20'}
{'job_name': '运维工程师(出差)', 'job_url': 'https://jobs.51job.com/dengfengshi/121147069.html?s=01&t=0', 'company': '维恩贝特科技有限公司', 'position': '郑州-登封市', 'salary': '1-2万/月', 'addtime': '05-20'}
{'job_name': '运维架构师', 'job_url': 'https://jobs.51job.com/jinshuiqu/99403332.html?s=01&t=0', 'company': '郑州珑凌科技有限公司', 'position': '郑州-金水区', 'salary': '1.5-3万/月', 'addtime': '05-20'}
{'job_name': 'Unity3D', 'job_url': 'https://jobs.51job.com/zhengzhou/120923241.html?s=01&t=0', 'company': '河南杰文信息技术有限公司', 'position': '郑州', 'salary': '4.5-6千/月', 'addtime': '05-20'}
{'job_name': '大数据开发工程师', 'job_url': 'https://jobs.51job.com/henansheng/119744618.html?s=01&t=0', 'company': '河南卫华重型机械股份有限公司', 'position': '异地招聘', 'salary': '0.8-1.5万/月', 'addtime': '05-20'}
{'job_name': '算法工程师', 'job_url': 'https://jobs.51job.com/zhengzhou-gxq/119148900.html?s=01&t=0', 'company': '深圳市讯方技术股份有限公司', 'position': '郑州-高新区', 'salary': '1-2万/月', 'addtime': '05-20'}
{'job_name': '实施运维工程师', 'job_url': 'https://jobs.51job.com/guanchenghuizuqu/120578376.html?s=01&t=0', 'company': '河南采越软件技术股份有限公司', 'position': '郑州-管城回族...', 'salary': '6-8千/月', 'addtime': '05-20'}
{'job_name': '大数据架构师', 'job_url': 'https://jobs.51job.com/zhengzhou-gxq/121148325.html?s=01&t=0', 'company': '河南辉煌科技股份有限公司', 'position': '郑州-高新区', 'salary': '1-1.5万/月', 'addtime': '05-20'}
{'job_name': '大数据架构师', 'job_url': 'https://jobs.51job.com/zhengzhou/119767001.html?s=01&t=0', 'company': '河南海融软件有限公司', 'position': '郑州', 'salary': '1.5-2.5万/月', 'addtime': '05-20'}
{'job_name': '数据工程师', 'job_url': 'https://jobs.51job.com/zhengzhou/121117648.html?s=01&t=0', 'company': '中移在线服务有限公司', 'position': '郑州', 'salary': '20-30万/年', 'addtime': '05-20'}
{'job_name': '软件测试工程师', 'job_url': 'https://jobs.51job.com/zhengzhou/118219825.html?s=01&t=0', 'company': '湖南金烽信息科技有限公司', 'position': '郑州', 'salary': '1-1.5万/月', 'addtime': '05-20'}
{'job_name': '高级DevOps研发工程师', 'job_url': 'https://jobs.51job.com/zhengzhou/117886509.html?s=01&t=0', 'company': '河南云蚁信息技术有限公司', 'position': '郑州', 'salary': '30-40万/年', 'addtime': '05-20'}
{'job_name': 'C++开发工程师', 'job_url': 'https://jobs.51job.com/zhengzhou-gxq/117361046.html?s=01&t=0', 'company': '上海子午线新荣科技有限公司', 'position': '郑州-高新区', 'salary': '1.5-2万/月', 'addtime': '05-20'}
{'job_name': '测试工程师', 'job_url': 'https://jobs.51job.com/zhengzhou-zzxq/116577246.html?s=01&t=0', 'company': '河南澳乐康科技有限公司', 'position': '郑州-郑东新区', 'salary': '0.6-1.1万/月', 'addtime': '05-20'}
{'job_name': 'java/net/web/软件研发工程师', 'job_url': 'https://jobs.51job.com/zhengzhou-jkq/120982295.html?s=01&t=0', 'company': '中讯志远(武汉)科技有限公司', 'position': '郑州-经开区', 'salary': '6-8千/月', 'addtime': '05-20'}
{'job_name': '数据分析', 'job_url': 'https://jobs.51job.com/zhengzhou-zzxq/115979573.html?s=01&t=0', 'company': '河南云之谷信息科技有限公司', 'position': '郑州-郑东新区', 'salary': '6-8千/月', 'addtime': '05-20'}
{'job_name': '软件测试工程师', 'job_url': 'https://jobs.51job.com/zhengzhou-gxq/121446314.html?s=01&t=0', 'company': '浙江和达科技股份有限公司', 'position': '郑州-高新区', 'salary': '7-12万/年', 'addtime': '05-20'}
{'job_name': '高级测试工程师', 'job_url': 'https://jobs.51job.com/zhengzhou/110126832.html?s=01&t=0', 'company': '郑州恩普特科技股份有限公司', 'position': '郑州', 'salary': '0.9-1.2万/月', 'addtime': '05-20'}
{'job_name': '对日软件工程师2020年招聘', 'job_url': 'https://jobs.51job.com/nanjing/121822823.html?s=01&t=0', 'company': '南京机蜂信息科技有限公司', 'position': '异地招聘', 'salary': '2-5万/月', 'addtime': '05-20'}
{'job_name': '数据分析师', 'job_url': 'https://jobs.51job.com/jinshuiqu/122179050.html?s=01&t=0', 'company': '北京瑞天欣实数据科技有限公司', 'position': '郑州-金水区', 'salary': '0.7-1.2万/月', 'addtime': '05-20'}
{'job_name': 'Web前端开发工程师', 'job_url': 'https://jobs.51job.com/zhongyuanqu/105965640.html?s=01&t=0', 'company': '郑州思博科信息技术有限公司', 'position': '郑州-中原区', 'salary': '0.5-1万/月', 'addtime': '05-20'}

Process finished with exit code 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值