python爬虫--招聘信息

一、对职友集的python爬虫

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

在这里插入图片描述

代码如下:

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

import requests
from bs4 import BeautifulSoup

list_url = []#存储生成的从第一页到第5页的网页链接
list_info_experience = []#存储求职要求经验
list_info_education = []#存储求职要求学历
list_info_money = []#存储求职要求薪资区间
list_name = []#存储求职公司名称

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

#获取每家公司的名称
def Get_Name():
    names = soup.select('#search-match > div.header-2014 > div.astruct.cfix > div.aleft > div.jk-box.jk-matter.j-jobInfo > ul > li > div > div > div.cfix > a')
    for i in names:
        list_name.append(i.get_text())

#获取每家公司的经验要求,学历要求,薪资区间
def Get_Msg():
    for i in range(1, 16):
        xxx = 'div.header-2014 > div.astruct.cfix > div.aleft > div.jk-box.jk-matter.j-jobInfo > ul > li:nth-of-type({}) > div > div > div:nth-of-type(4)'.format(i)
        #print(xxx)
        msg = soup.select(xxx)
        #print(msg)
        for y in msg:
            info = y.get_text()
            info = info.split('|')#将经验要求,学历要求,薪资区间3个信息,以|分割开,存储为列表格式
            list_info_experience.append(info[0].strip())
            list_info_education.append(info[1].strip())
            list_info_money.append(info[2].strip())
#最后以字典形式输出
def DictOutput():
    for JobName, JobExperience, JobEducation, JobMoney in zip(list_name, list_info_experience, list_info_education, list_info_money):
        AllData = {'公司名称': JobName,
                   '工作经验': JobExperience,
                   '学历要求': JobEducation,
                   '薪资范围': JobMoney
        }
        print(AllData)
print('北京市招聘信息')
Make_Url()
#先输出3页
for i in range(0, 3):
    Get_Wb(list_url[i])
    print(list_url[i])#当前的网页连接
    Get_Msg()
    Get_Name()
DictOutput()#等到3个网页的信息全部存储在列表中后,一起用字典格式化打印出来。

输出结果:

因为太多了,所以我只贴了第一页和第二页的招聘信息。

北京市招聘信息
{'公司名称': 'Python开发工程师4775', '工作经验': '不限经验', '学历要求': '不限学历', '薪资范围': '2.5-3万/月'}
{'公司名称': 'python接口自动化测试', '工作经验': '不限经验', '学历要求': '大专以上', '薪资范围': '10000-12000'}
{'公司名称': 'Python开发工程师', '工作经验': '1年以下', '学历要求': '本科以上', '薪资范围': '20000-26000元'}
{'公司名称': 'Python开发工程师', '工作经验': '3-5年', '学历要求': '本科以上', '薪资范围': '18000-28000'}
{'公司名称': 'Python', '工作经验': '1-3年', '学历要求': '本科以上', '薪资范围': '28000-40000'}
{'公司名称': '存储研发工程师-python', '工作经验': '1-3年', '学历要求': '大专以上', '薪资范围': '8000-10000元'}
{'公司名称': 'Python 开发工程师', '工作经验': '1年以上', '学历要求': '本科以上', '薪资范围': '20-40万'}
{'公司名称': 'Python研发工程师', '工作经验': '3年以上', '学历要求': '本科以上', '薪资范围': '21-35万'}
{'公司名称': 'Python开发工程师', '工作经验': '1年工作经验', '学历要求': '本科以上', '薪资范围': '1.5-3万/月'}
{'公司名称': 'Python工程师', '工作经验': '2年以上', '学历要求': '本科以上', '薪资范围': '12-24万'}
{'公司名称': 'python研发工程师', '工作经验': '3-5年', '学历要求': '本科以上', '薪资范围': '17000-24000元'}
{'公司名称': 'python开发经理', '工作经验': '10年以上', '学历要求': '本科以上', '薪资范围': '40000-55000'}
{'公司名称': '高级 资深python研发工程师', '工作经验': '5-10年', '学历要求': '本科以上', '薪资范围': '25000-50000'}
{'公司名称': 'Python', '工作经验': '3-5年', '学历要求': '本科以上', '薪资范围': '12000-18000'}
{'公司名称': '高级Python开发工程师', '工作经验': '1年以上', '学历要求': '不限学历', '薪资范围': '40-70万'}
{'公司名称': 'Python Leader', '工作经验': '5年以上', '学历要求': '不限学历', '薪资范围': '50-80万'}
{'公司名称': 'python工程师', '工作经验': '2年以上', '学历要求': '本科以上', '薪资范围': '30-60万'}
{'公司名称': 'Python开发leader', '工作经验': '5年以上', '学历要求': '本科以上', '薪资范围': '30-60万'}
{'公司名称': '高级Python开发工程师', '工作经验': '3-5年', '学历要求': '本科以上', '薪资范围': '20000-35000'}
{'公司名称': 'Python自动化测试', '工作经验': '3-5年', '学历要求': '本科以上', '薪资范围': '14000-25000'}
{'公司名称': 'Python Erlang 全栈工程师', '工作经验': '3-5年', '学历要求': '本科以上', '薪资范围': '20000-40000'}
{'公司名称': 'Python高级工程师', '工作经验': '3-4年工作经验', '学历要求': '本科以上', '薪资范围': '1.5-2.5万/月'}
{'公司名称': 'Python讲师 Python助理讲师', '工作经验': '3-5年', '学历要求': '本科以上', '薪资范围': '15000-30000'}
{'公司名称': 'python接口测试', '工作经验': '3-5年', '学历要求': '大专以上', '薪资范围': '10000-12000'}
{'公司名称': 'python开发team leader', '工作经验': '5-10年', '学历要求': '本科以上', '薪资范围': '35000-50000'}
{'公司名称': 'python研发外派百度', '工作经验': '3-5年', '学历要求': '本科以上', '薪资范围': '10000-18000'}
{'公司名称': 'Python', '工作经验': '3年以上', '学历要求': '本科以上', '薪资范围': '40-70万'}
{'公司名称': 'Python开发工程师', '工作经验': '3-5年', '学历要求': '大专以上', '薪资范围': '12000-17000'}
{'公司名称': 'Python数据爬虫', '工作经验': '1-3年', '学历要求': '本科以上', '薪资范围': '10000-12000'}
{'公司名称': 'python java爬虫工程师', '工作经验': '1-3年', '学历要求': '本科以上', '薪资范围': '9000-17000'}

headers错误信息处理

headers是我本机的一个信息,你们运行应该会报错,解决方法进入浏览器,右键检查,按照步骤来,之后复制,替换headers中内容:
在这里插入图片描述

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

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

猜你喜欢

转载自blog.csdn.net/qq_43371004/article/details/83688189