python爬虫--招聘信息

对职友集招聘网站的爬虫

  • 一、对职友集的python爬虫
    • 代码如下:
    • 输出结果:
    • headers错误信息处理

一、对职友集的python爬虫

由于网页更新标签,现在(20190605)更新代码,可以正常使用!

学习python那就要对自己将来的工作有一个研究,现在就来看看,职友集上的python工程师的招聘信息

python爬虫--招聘信息_第1张图片

代码如下:

看不懂soup.select()的请看我的博客中【python爬虫–旅游】里面有详细解释方法。

import requests
from bs4 import BeautifulSoup

list_url = []  # 存储生成的从第一页到第某页的网页链接
list_info_experience = []  # 存储求职经验
list_info_education = []  # 存储学历
list_info_money = []  # 存储工资
list_name = []  # 存储求职公司名称
list_name_job = []  # 存职位名称


# 网页有很多页,这里把每一页的连接存储在list_url中
def Make_Url(name):
    for i in range(1, 4):
        global URL
        URL = 'https://www.jobui.com/jobs?jobKw={}&cityKw=%E5%8C%97%E4%BA%AC&n={}'.format(name,i)
        list_url.append(URL)
        # print(list_url)


# 获取给定URL页的html信息
def Get_Wb(URL):
    # headers你如果出现错误,请看下方图示。
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
    wb_data = requests.get(URL, headers=headers)
    global soup
    soup = BeautifulSoup(wb_data.content, 'lxml')
    # print(soup)
    print('\n-----------------------')


# 获取每家公司的名称
def Get_Name():
    names = soup.select('div > div > div > div > div > div > div > div > a.job-company-name')
    for i in names:
        list_name.append(i.get_text().replace('\n', ''))


# 获取职位名称
def Get_Name_Job():
    names = soup.select('div > div > div > div > div > div > div > div > a.job-name')
    for i in names:
        list_name_job.append(i.get_text().replace('\n', ''))


# 获取每家公司的浏览量,研发方向,需要人数
def Get_Msg():
    for i in range(1, 17):
        xxx = 'div > div > div > div > div > div > div > div > div.job-desc'
        msg = soup.select(xxx)
        for y in msg:
            info = y.get_text()
            try:
                info = info.split('|')
                list_info_experience.append(info[0].strip())
                list_info_education.append(info[1].strip())
                list_info_money.append(info[2].strip())
            except:
                pass
                print("空字符串")

# 最后以字典形式输出
def DictOutput():
    for Name, JobName, JobExperience, JobEducation, JobMoney in zip(list_name, list_name_job, list_info_experience,
                                                                    list_info_education, list_info_money):
        AllData = {'公司名称': Name,
                   '职位名称': JobName,
                   '经验': JobExperience,
                   '学历': JobEducation,
                   '薪资': JobMoney
                   }
        print(AllData)


print('北京市招聘信息')

name = input("请输入你要查询北京的职位名称:(例如python,java)")

Make_Url(name)
# 先输出4页
for i in range(0, 3):
    Get_Wb(list_url[i])
    print(list_url[i])  # 当前的网页连接
    Get_Msg()
    Get_Name()
    Get_Name_Job()
DictOutput()  # 等到4个网页的信息全部存储在列表中后,一起用字典格式化打印出来。



输出结果:

C:\Users\JF\AppData\Local\Programs\Python\Python36\python.exe "C:/Users/JF/Desktop/test - 副本.py"
北京市招聘信息
请输入你要查询北京的职位名称:(例如python,java)python

-----------------------
https://www.jobui.com/jobs?jobKw=python&cityKw=%E5%8C%97%E4%BA%AC&n=1

-----------------------
https://www.jobui.com/jobs?jobKw=python&cityKw=%E5%8C%97%E4%BA%AC&n=2

-----------------------
https://www.jobui.com/jobs?jobKw=python&cityKw=%E5%8C%97%E4%BA%AC&n=3
{'公司名称': '优维科技(深圳)有限公司', '职位名称': 'python开发工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '11000-20000元'}
{'公司名称': '北京泡泡玛特文化创意股份有限公司', '职位名称': 'python后端工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '安徽初见网络科技有限公司', '职位名称': 'python高级开发工程师', '经验': '3年以上', '学历': '本科以上', '薪资': '18.0-30.0万元'}
{'公司名称': '北京汉迪移动互联网科技股份有限公司', '职位名称': 'Python高级工程师', '经验': '不限经验', '学历': '本科以上', '薪资': '20000-40000'}
{'公司名称': '文思海辉技术有限公司', '职位名称': 'python开发', '经验': '1年以上', '学历': '本科以上', '薪资': '12.0-18.0万元'}
{'公司名称': '北京字节跳动科技有限公司', '职位名称': '高级python工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '30000-60000元'}
{'公司名称': '智线云科技(北京)有限公司', '职位名称': 'Python中级工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '10000-18000元'}
{'公司名称': '智线云科技(北京)有限公司', '职位名称': '高级Java PHP Python工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '智线云科技(北京)有限公司', '职位名称': '高级python工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '北京第三石科技发展有限公司', '职位名称': 'python开发工程师', '经验': '1年以下', '学历': '本科以上', '薪资': '4000-8000元'}
{'公司名称': '北京字节跳动科技有限公司', '职位名称': 'Python开发工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '20000-35000元'}
{'公司名称': '北京汉迪移动互联网科技股份有限公司', '职位名称': 'Python开发工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '15000-30000元'}
{'公司名称': '北京汉迪移动互联网科技股份有限公司', '职位名称': '高级Python工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '25000-50000元'}
{'公司名称': '达内时代科技集团有限公司', '职位名称': 'Python高级开发工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '达内时代科技集团有限公司', '职位名称': 'python讲师', '经验': '3-5年', '学历': '本科以上', '薪资': '18000-30000元'}
{'公司名称': '达内时代科技集团有限公司', '职位名称': '高级Python开发工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '11000-20000元'}
{'公司名称': '北京第三石科技发展有限公司', '职位名称': '高级Python开发工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '北京一亩田新农网络科技有限公司', '职位名称': 'Python实习生', '经验': '3年以上', '学历': '本科以上', '薪资': '18.0-30.0万元'}
{'公司名称': '北京字节跳动科技有限公司', '职位名称': 'Python开发工程师-变现业务', '经验': '不限经验', '学历': '本科以上', '薪资': '20000-40000'}
{'公司名称': '北京汉迪移动互联网科技股份有限公司', '职位名称': 'Python开发实习生', '经验': '1年以上', '学历': '本科以上', '薪资': '12.0-18.0万元'}
{'公司名称': '智线云科技(北京)有限公司', '职位名称': '高级Python开发工程师 爬虫 Spider', '经验': '3-5年', '学历': '本科以上', '薪资': '30000-60000元'}
{'公司名称': '北京字节跳动科技有限公司', '职位名称': '高级python研发工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '10000-18000元'}
{'公司名称': '达内时代科技集团有限公司', '职位名称': '初级Python c++开发', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '北京汉迪移动互联网科技股份有限公司', '职位名称': 'python开发', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '达而观信息科技(上海)有限公司', '职位名称': '高级python开发工程师', '经验': '1年以下', '学历': '本科以上', '薪资': '4000-8000元'}
{'公司名称': '北京汉迪移动互联网科技股份有限公司', '职位名称': '高级Python开发工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '20000-35000元'}
{'公司名称': '数据堂(北京)科技股份有限公司', '职位名称': 'python高级开发工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '15000-30000元'}
{'公司名称': '朗新科技股份有限公司', '职位名称': 'Python开发工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '25000-50000元'}
{'公司名称': '北京字节跳动科技有限公司', '职位名称': 'Python开发工程师变现业务', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '北京飞博教育科技股份有限公司', '职位名称': '高级Python开发工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '18000-30000元'}
{'公司名称': '北京爱咔咔信息技术有限公司', '职位名称': 'python开发工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '11000-20000元'}
{'公司名称': '优维科技(深圳)有限公司', '职位名称': 'Python开发-北京', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '达而观信息科技(上海)有限公司', '职位名称': 'Python开发工程师', '经验': '3年以上', '学历': '本科以上', '薪资': '18.0-30.0万元'}
{'公司名称': '杭州博彦信息技术有限公司', '职位名称': 'python开发工程师', '经验': '不限经验', '学历': '本科以上', '薪资': '20000-40000'}
{'公司名称': '北京字节跳动科技有限公司', '职位名称': 'Python开发工程师 - 变现业务', '经验': '1年以上', '学历': '本科以上', '薪资': '12.0-18.0万元'}
{'公司名称': '北京魔门塔科技有限公司', '职位名称': '后端开发工程师Python', '经验': '3-5年', '学历': '本科以上', '薪资': '30000-60000元'}
{'公司名称': '软通动力信息技术(集团)有限公司', '职位名称': 'Python开发工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '10000-18000元'}
{'公司名称': '途家网网络技术(北京)有限公司', '职位名称': 'Python数据工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '医渡云(北京)技术有限公司', '职位名称': 'Web后台Python高级开发工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '北京智融时代信息技术有限公司', '职位名称': '高级Python开发工程师', '经验': '1年以下', '学历': '本科以上', '薪资': '4000-8000元'}
{'公司名称': '北京智融时代信息技术有限公司', '职位名称': 'python开发实习生', '经验': '1-3年', '学历': '本科以上', '薪资': '20000-35000元'}
{'公司名称': '迪原创新(北京)科技有限公司', '职位名称': 'Python开发工程师', '经验': '1-3年', '学历': '本科以上', '薪资': '15000-30000元'}
{'公司名称': '迪原创新(北京)科技有限公司', '职位名称': 'Python开发', '经验': '3-5年', '学历': '本科以上', '薪资': '25000-50000元'}
{'公司名称': '北京小鸟听听科技有限公司', '职位名称': 'python实习', '经验': '3-5年', '学历': '本科以上', '薪资': '15000-25000元'}
{'公司名称': '精硕科技(北京)股份有限公司', '职位名称': 'Python开发工程师', '经验': '3-5年', '学历': '本科以上', '薪资': '18000-30000元'}

Process finished with exit code 0

headers错误信息处理

headers是我本机的一个信息,你们运行应该会报错,解决方法进入浏览器,右键检查,按照步骤来,之后复制,替换headers中内容:
python爬虫--招聘信息_第2张图片

谢谢支持,本人亲测运行成功。

-------------------------------------------------------------------------------------------------

你可能感兴趣的:(python爬虫,python)