python爬蟲--招聘資訊

噹噹和嘟嘟發表於2018-11-03

一、對職友集的python爬蟲

由於網頁更新標籤,現在(20190605)更新程式碼,可以正常使用!

學習python那就要對自己將來的工作有一個研究,現在就來看看,職友集上的python工程師的招聘資訊

在這裡插入圖片描述

程式碼如下:

看不懂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中內容:
在這裡插入圖片描述

謝謝支援,本人親測執行成功。

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

相關文章