Lagou.com verileri tarandığında, Python maaşının 50K kadar yüksek olduğu bulundu! Teknik başlıklar

Yazar | lowelong

Baş Editör | Guo Rui

Yapay zekanın hızla gelişmesi ve büyük veri çağının ortaya çıkması, Python dilini yalnızca yapay zeka alanında parlatmakla kalmadı, aynı zamanda Web geliştirme, ağ programlama, otomatik operasyon ve bakım, oyun geliştirme, finans vb. Gibi veri işlemede benzersiz avantajlara da sahip oldu. Alan giderek daha önemli bir rol oynuyor.

Baidu arama endeksi, Temmuz 2017'den itibaren Python'un arama endeksinin Java'yı geçtiğini gösteriyor. Python dilinin popülaritesi buradan görülebilir.

Bu makalede yazar, Lagou.com'da (İnternet uygulayıcıları için iş fırsatları sağlayan bir işe alım web sitesi) ilgili Python iş bilgilerini taramaya ve iş verileri (maaş, akademik gereksinimler, bölgesel bilgiler, iş deneyimi vb.) Üzerinde grafik görsel analiz yapmaya karar verdi. .

Ön hazırlık

1. Web sayfası analizi

Lagou web sitesini açın ve Python'da arama yapın, her sayfada 15 iş bilgisi verisi olduğunu ve toplamda 450 iş bilgisi olan 30 sayfaya kadar verinin görüntülenebildiğini görebilirsiniz. Elde etmemiz gereken bilgiler şunları içerir: pozisyon, şirket adı, maaş aralığı, konum, eğitim gereksinimleri, iş deneyimi, şirket finansmanı, şirket numarası, iş gereksinimlerinin açıklaması.

2. Veri analizi talep edin

Chrome tarayıcısı üzerinden Lagou.com'u ziyaret edin ve sayfa çevrildiğinde isteğin xhr aracılığıyla yapıldığını bulmak için Konsolu açın. Gözlem yoluyla, URL'deki şehrin şehri temsil ettiğini, kd sonrası parametresinin aranan konumu temsil ettiğini ve pn'nin sayfa numarasını temsil eden sayfa numarası olduğunu bulabiliriz.

3. İş listesinin JSON'si tarafından döndürülen verilerin analizi ve elde edilmesi

İlgili bilgileri elde etmek için verileri JSON kitaplığı aracılığıyla analiz edin. İş tanımı bilgilerini elde etmek için bir sonraki adım için positionID'yi korumamız gerektiğini hatırlamamız gerektiği unutulmamalıdır.

def get_lagou (sayfa, şehir, kd):

url = "https://www.lagou.com/jobs/positionAjax.json"

querystring = {"px": "new", "city": city, "needAddtionalResult": "false", "isSchoolJob": "0"}

payload = "ilk = falsepn =" + str (sayfa) + "kd =" + str (kd)

çerez = "JSESSIONID =" + get_uuid () + ";" \

"user_trace_token =" + get_uuid () + "; LGUID =" + get_uuid () + "; index_location_city =% E6% 88% 90% E9% 83% BD;" \

"SEARCH_ID =" + get_uuid () + '; _gid = GA1.2.717841549.1514043316;' \

'_ga = GA1.2.952298646.1514043316;' \

'LGSID =' + get_uuid () + ";" \

"LGRID =" + get_uuid () + ";"

headers = {'cookie': cookie, 'origin': "https://www.lagou.com", 'x-anit-forge-code': "0", 'accept-encoding': "gzip, deflate, br ", 'kabul dili':" zh-CN, zh; q = 0.8, en; q = 0.6 ", 'kullanıcı aracısı':" Mozilla / 5.0 (Windows NT 10.0; WOW64) AppleWebKit / 537.36 (KHTML, Gecko gibi) Chrome / 55.0.2883.87 Safari / 537.36 ", 'content-type':" application / x-www-form-urlencoded; charset = UTF-8 ", 'accept':" application / json, text / javascript, * / *; q = 0.01 ", 'yönlendiren':" https://www.lagou.com/jobs/list_Java?px=newcity=%E6%88%90%E9%83%BD",'x-requested -with ': "XMLHttpRequest",' connection ': "canlı tutma",' x-anit-forge-token ': "None",' cache-control ': "no-cache",' postman-token ': "91beb456-8dd9-0390-a3a5-64ff3936fa63"}

yanıt = request.request ("POST", url, data = payload.encode ('utf-8'), başlıklar = başlıklar, parametreler = sorgu dizesi)

# print (response.text)

hjson = json.loads (response.text)

aralıktaki i için (15):

positionName = hjson

companyId = hjson

positionId = hjson

maaş = hjson

şehir = hjson

ilçe = hjson

companyShortName = hjson

eğitim = hjson

workYear = hjson

IndustryField = hjson

FinanceStage = hjson

companySize = hjson

job_desc = get_job_desc (positionId)

positionName_list.append (positionName)

salary_list.append (maaş)

city_list.append (şehir)

district_list.append (bölge)

companyShortName_list.append (companyShortName)

education_list.append (eğitim)

workYear_list.append (workYear)

IndustryField_list.append (industryField)

FinanceStage_list.append (FinanceStage)

companySize_list.append (companySize)

# job_desc_list.append (job_desc)

4. İş tanımını alın

Gözlem, belirli bir konumun ayrıntılı sayfasını açarken, URL'deki değerin (örneğin, aşağıdaki URL'deki 4789029), önceki adımda JSON konum listesinden elde edilebilen konumun konum kimliği olduğunu göstermektedir.

İstekler yoluyla sayfa bilgisi isteyin ve ardından xpath aracılığıyla iş tanımı bilgilerini alın.

def get_job_desc (id):

url = "https://www.lagou.com/jobs/"+str(id)+".html"

çerez = "JSESSIONID =" + get_uuid () + ";" \

"user_trace_token =" + get_uuid () + "; LGUID =" + get_uuid () + "; index_location_city =% E6% 88% 90% E9% 83% BD;" \

"SEARCH_ID =" + get_uuid () + '; _gid = GA1.2.717841549.1514043316;' \

'_ga = GA1.2.952298646.1514043316;' \

'LGSID =' + get_uuid () + ";" \

"LGRID =" + get_uuid () + ";"

headers = {'cookie': cookie, 'origin': "https://www.lagou.com", 'x-anit-forge-code': "0", 'accept-encoding': "gzip, deflate, br ", 'kabul dili':" zh-CN, zh; q = 0.8, en; q = 0.6 ", 'kullanıcı aracısı':" Mozilla / 5.0 (Windows NT 10.0; WOW64) AppleWebKit / 537.36 (KHTML, Gecko gibi) Chrome / 55.0.2883.87 Safari / 537.36 ", 'content-type':" application / x-www-form-urlencoded; charset = UTF-8 ", 'accept':" application / json, text / javascript, * / *; q = 0.01 ", 'yönlendiren':" https://www.lagou.com/jobs/list_Java?px=newcity=%E6%88%90%E9%83%BD",'x-requested -with ': "XMLHttpRequest",' connection ': "canlı tutma",' x-anit-forge-token ': "None",' cache-control ': "no-cache",' postman-token ': "91beb456-8dd9-0390-a3a5-64ff3936fa63"}

yanıt = request.request ("GET", url, başlıklar = başlıklar)

x = etree.HTML (response.text)

veri = x.xpath ('// * / dd / div / * / text ()')

return ''. join (veri)

Veri toplama tarayıcısı

1. Çerezleri ve üstbilgileri ayarlayın

İlgili bilgileri ayarlamazsanız, taramaya izin verilmez ve şu komut istemi döndürülür: "Çok sık ameliyat ettiniz, lütfen daha sonra tekrar ziyaret edin." Bu nedenle, başlıkları ve çerez bilgilerini ayarlamamız gerekir.

def get_lagou (sayfa, şehir, kd):

url = "https://www.lagou.com/jobs/positionAjax.json"

querystring = {"px": "new", "city": city, "needAddtionalResult": "false", "isSchoolJob": "0"}

payload = "ilk = falsepn =" + str (sayfa) + "kd =" + str (kd)

çerez = "JSESSIONID =" + get_uuid () + ";" \

"user_trace_token =" + get_uuid () + "; LGUID =" + get_uuid () + "; index_location_city =% E6% 88% 90% E9% 83% BD;" \

"SEARCH_ID =" + get_uuid () + '; _gid = GA1.2.717841549.1514043316;' \

'_ga = GA1.2.952298646.1514043316;' \

'LGSID =' + get_uuid () + ";" \

"LGRID =" + get_uuid () + ";"

headers = {'cookie': cookie, 'origin': "https://www.lagou.com", 'x-anit-forge-code': "0", 'accept-encoding': "gzip, deflate, br ", 'kabul dili':" zh-CN, zh; q = 0.8, en; q = 0.6 ", 'kullanıcı aracısı':" Mozilla / 5.0 (Windows NT 10.0; WOW64) AppleWebKit / 537.36 (KHTML, Gecko gibi) Chrome / 55.0.2883.87 Safari / 537.36 ", 'content-type':" application / x-www-form-urlencoded; charset = UTF-8 ", 'accept':" application / json, text / javascript, * / *; q = 0.01 ", 'yönlendiren':" https://www.lagou.com/jobs/list_Java?px=newcity=%E6%88%90%E9%83%BD",'x-requested -with ': "XMLHttpRequest",' connection ': "canlı tutma",' x-anit-forge-token ': "None",' cache-control ': "no-cache",' postman-token ': "91beb456-8dd9-0390-a3a5-64ff3936fa63"}

2. Gecikme ayarı ve sayfa tarama

Tarama hızının çok hızlı engellenmesini önlemek için gecikme süresini 3-5 saniyeye ayarlayın. Sayfalama verileri, for döngüsü aracılığıyla taranır.

def main (sayfalar, şehir, iş):

aralıktaki n için (1, sayfa + 1):

get_lagou (n, şehir, iş)

time.sleep (round (random.uniform (3, 5), 2))

write_to_csv (şehir, iş)

Veri depolama ve işleme

1. CSV veri depolama

Az miktarda veri nedeniyle, CSV depolaması kullanılarak 450 parçaya kadar veri.

2. Veri işleme

  • Maaş veri işleme

Aylık maaş oranına ilişkin takip istatistikleri, maaş aralığı özelleştirilebildiğinden, tek tip bir standart yoktur. Örneğin, maaş 10k-20k, 5k-8k, 11k-18k, 10k-16k vb. Olabilir. Takip, maaş aralığının görselleştirilmesine elverişli değildir, bu nedenle maaş şu türlerde sınıflandırılabilir: 2k-20k-5k, 5k-10k , 10k-15k, 15k-25k, 25k-50k, 50k ve üzeri.

Maaş 10k-20k ise 10k-15k ve 15k-25k olmak üzere iki kategoriye dahil edilmiş sayılır. Sınıflandırmak ve özetlemek için normal ifadeler kullanın:

def maaş_categorize (maaşlar):

dict = ('2k-5k': 0, '5k-10k': 0, '10k-15k': 0, '15k-25k': 0, '25k-50k': 0, "50.000 ve üstü": 0}

maaş maaşı için:

yeniden eşleşirse ('^ k- * |. * - k $', maaş)! = Yok:

dikte + = 1

yeniden eşleşirse ('^ k- * |. * - k $', maaş)! = Yok:

dikte + = 1

yeniden eşleşirse ('^ k- * |. * - k $', maaş)! = Yok:

dikte + = 1

eğer yeniden eşleşirse ('^ 1k- * |. * - 1k $', maaş)! = Yok:

dikte + = 1

eğer yeniden eşleşirse ('^ 1k- * | ^ 2k- * |. * - 1k $ |. * - 2k $', maaş)! = Yok:

dikte + = 1

yeniden eşleşirse ('^ 2k- * | ^ k- * |. * - 2k $ |. * - k $', maaş)! = Yok:

dikte + = 1

yeniden eşleşirse ('^ k- * |. * - k $ | ^ \ d {3,} k- * |. * - \ d {3,} k $', maaş)! = Yok:

dikte + = 1

dönüş kararı

  • Sanayi Bilgi İşleme

Şirket, genellikle virgülle ayrılmış birden çok sektöre aittir, ancak bazıları virgül ve boşluklarla ayrılmıştır ve ilgili endüstrilerin belirtilmediği durumlar olabilir. Bu bağlamda, Python'un yeniden kütüphanesi, ayırıcılarla ayrılmış birden fazla veriyi işleyebilir, eğer endüstri boşsa, atlayın.

def industryField_counts (csv_file):

IndustryFields =

d = pd.read_csv (csv_file, motor = 'python', kodlama = 'utf-8')

bilgi = d

aralıktaki i için (len (bilgi)):

Deneyin:

data = re.split ('', bilgi )

dışında:

devam et

aralıktaki j için (len (veri)):

IndustryFields.append (veri)

counts = Sayaç (endüstriFields)

dönüş sayıları

Veri görselleştirme ve yorumlama

1. Şirketin ilgili durumunun analizi

Sektör koşulları ve şirket büyüklüğü açısından bakıldığında, talebin% 40'ını mobil internet,% 10'unu ise veri hizmetleri + büyük veri + yapay zeka oluşturuyor. Python çok güçlüdür ve uygun alanlar arasında web geliştirme, ağ programlama, tarayıcılar, bulut bilişim, yapay zeka, otomatik operasyon ve bakım vb. Bulunur. Bu nedenle, şirket büyük veya küçük olursa olsun ve finansman durumu, Python ile ilgili pozisyonlardaki yeteneklere genellikle ihtiyaç vardır.

2. Kentsel talep analizi

Yukarıdaki analizden, talebin esas olarak Çin'in üç büyük ekonomik çevresinde yoğunlaştığı görülebilir: Pekin-Tianjin-Hebei, Yangtze Nehri Deltası ve İnci Nehri Deltası. Ağırlıklı olarak 6 şehirde dağıtılır: Pekin (% 40), Şangay (% 16), Shenzhen (% 15), Guangzhou (% 6), Chengdu (% 6) ve Hangzhou (% 6). Pekin'in İnternet girişimci atmosferi, Çin'de en yüksek seviyededir. Pekin'de kayıtlı internet şirketleri diğer şehirlere göre çok daha yüksektir ve talep en büyüğüdür.

3. Maaş ve iş tecrübesi analizi

İş tecrübesi gereksinimleri açısından çoğu 3-5 yıl ve 1-3 yıl olmak üzere iki aralıkta yoğunlaşmaktadır.İş tecrübesi ile maaş arasındaki ilişkiye gelince, 1-3 yıllık iş tecrübesi maaşının genel olarak olduğu görülmektedir. 15-25K, normal dağıtım yasasına uygun olarak, 3-5 yıllık iş tecrübesinin maaşı genellikle 15k-25k ve 25k-50k olmak üzere iki aralıkta, çoğunluk 15k-25k aralığındadır. 5-10 yıllık iş tecrübesine sahip olanlar için maaş çoğunlukla 25k-50K aralığındadır.

4. Akademik gereksinimlerin ve iş deneyiminin analizi

Akademik gereksinimler açısından bakıldığında, çoğu en az bir lisans veya daha yüksek bir derece gerektirir ve bu yaklaşık% 80'i oluşturur. . Öyleyse okumanın yararsız olduğu görüşüne inanmayın, eğitim en azından çalışmak için bir basamaktır.

İş deneyimi açısından genel gereksinim 1-5 yıl olup bu bölüm% 84'dür. 1 yıldan az ve sınırsız deneyime sahip olanlar yaklaşık% 9, 5-10 yıl olanlar ise yaklaşık% 7'dir.

sonuç olarak

İlk üç hala Java, C ve C ++ olmasına rağmen, TIOBE Ağustos programlama dili endeksi sıralama listesi açıklandı. Ancak Python, TIOBE endeksinin ilk 3'üne çok yakın. Python'un yükselme eğilimi, TIOBE endeks sıralamalarına da yansıtılabilir ve İnternet endüstrisi de genel olarak Python'u benimsemeye başladı. Python programlama dili, başlangıçta Perl'in halefiydi ve inşa komut dosyaları ve çeşitli yapıştırıcı yazılımları yazmak için kullanıldı. Ama sonra yavaş yavaş diğer alanlara girdi. Günümüzde Python'u büyük gömülü sistemlerde çalıştırmak çok yaygındır. Bu nedenle, Python'un ilk üçe girmesi ve hatta gelecekte yeni ilk sırada Java'nın yerini alması tamamen mümkündür.

Python'un mevcut istihdam beklentilerine bakıldığında, aşağıdaki şekilde özetlenmiştir:

  • Python'un istihdam durumu iyimser TIOBE Ağustos programlama dili dizini sıralamasına ve Baidu endeksindeki arama sayısına bakıldığında, Python'un popülaritesi gittikçe artıyor.
  • Çin'de, Python ile ilgili işlere olan talep, özellikle Pekin, Şangay ve Şenzen şehirlerinde, hala üç büyük ekonomik çevrede yoğunlaşmaktadır. Sektör talebi açısından bakıldığında, esas olarak mobil İnternet, veri hizmetleri ve büyük veri analizi gibi sektörlerde yoğunlaşmıştır.
  • Lagou.com'un veri analizinden, Python ile ilgili çoğu pozisyonun lisans veya üstü gerektirdiği ve iş deneyiminin çoğunun 1-5 yıl gerektirdiği görülebilir. Python'un büyük veri ve yapay zeka alanındaki patlayıcı gelişimi nedeniyle, Python odaklı pozisyonların maaşı artıyor.Veri analizine göre aylık maaş 10K-50K arasında değişiyor.

Makaledeki kaynak kodun GitHub'a yüklendiğine dikkat edin, adres: https://github.com/liaolongfei/lagou/

Yazar hakkında: Yerli bir internet şirketinde test mühendisi olan Lowelong şu anda Python öğreniyor.

Sorumluluk Reddi: Bu makale, CSDN "Teknik Başlıklar" sütunundan özel bir katkı maddesidir. Yeniden yazdırmanız gerekirse, lütfen WeChat üzerinden God-I-love-u ile iletişime geçin.

Hayatı boyunca sadece kahkaha atan Linux'un babası Linus Torvalds, iyi bilinen bir söz söyledi: "Konuşmak ucuzdur. Bana kodu göster", bu tam olarak CSDN "Teknik Manşetler" sütununun asıl amacı ve vizyonudur. Tüm geliştiriciler için geliştiricilerin karşılaştığı teknik sıkıntı noktalarını hedefleyerek, gerçek bölümü görmek için kodu kullanın. Yeni teknolojilerin keşfedilmesinden iş uygulama uygulamasına kadar yüksek kaliteli teknik makaleleriniz varsa, katkıda bulunmaya ve kodu birlikte göstermeye davetlisiniz!

"Belgeler için çağrı"

CSDN kamu hesabı, "on milyonlarca teknik insanla büyüme" kavramını destekler. Teknik insanların ilk kez ilgilendiği endüstri odak olaylarını teknik insanların benzersiz bakış açılarından açıklamak için yalnızca "inek başlıkları" ve "konuşma" sütunlarını kullanmakla kalmaz, aynı zamanda "Teknik Başlıklar" sütunu, sektördeki popüler teknolojilerin ve uygulamaların derinlemesine bir yorumunu sunarak, tüm geliştiricilerin teknolojik trendlere ayak uydurmasına, uyanık bir teknolojik anlayışı sürdürmesine ve sektör eğilimleri ve teknolojileri hakkında daha kapsamlı bir anlayışa sahip olmasına olanak tanır.

Yüksek kaliteli makaleleriniz veya endüstrinin sıcak olayları, teknoloji trendleri hakkında içgörüler veya derinlemesine uygulama uygulamaları, senaryolar vb. Hakkında yeni içgörüleriniz varsa, lütfen gönderimler için CSDN ile iletişime geçin. İletişim: WeChat (guorui_1118, lütfen gönderim + ad + şirket pozisyonunu not edin), e-posta (guorui@csdn.net).

Çin'in spor endüstrisinin 15 yıldır sürdüğü ISPO Beijing 2019 açılıyor
önceki
Yapay zeka programcısını dönüştüren 35 yaşındaki BT uzmanı, gerçekten yanlış bir şey mi yapıyorum?
Sonraki
Microsoft'tan nefret etti ve Jobs'u reddetti. 21 yaşındaki Linux'u nasıl geliştirdi?
Almamın üzerinden bir ay geçti ve Jiye Heihongqi H5'in sahibi arabayı kullanmanın gerçek deneyimini paylaşıyor
Windows'u gözden geçiren Microsoft, yolsuzluk ve rüşvet çukuruna düştü
Bahar Şenliği sırasında yüksek hızlı garip fenomen, neden en yavaş araba en yüksek hız sınırına sahip şeritte koşuyor?
Tıbbi bakım, barınma, emeklilik, istihdam hakkında ... en çok ilgilendiğiniz geçim kaynağı sorunları burada
Yeni giriş modeli böyle mi görünüyor? Volkswagen Discovery Suite Edition'ın casus fotoğrafları
Tanınmış yorumcular, zamanın sesini özetlemek için 2017'nin altı anahtar kelimesini değerlendiriyor
Trafik polisi hatırlattı: Bahar Şenliği sırasında bu trafik yönetmeliğinin ihlali, ehliyetinizi doğrudan iptal edecek ve 5 yıl içinde sınava tekrar girmeyecektir!
Dikkatli bir değerlendirmeden sonra, nihayet Kaichen T90'ın lider versiyonunu ve geç teslim alma işlemini kilitledik.
Bir programcı olarak sellerle nasıl savaşılır?
Dikkatlice seçin, Audi'den vazgeçin ve sonunda Toyota Highlander'dan bahsedin
Tüketim Taobao, listedeki 2017 Times Bebek Uyku Tulumu, wolfberry'li bir kupa ve kedi emen bir eser seçti!
To Top