Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan Python untuk melaksanakan laporan analisis kerja

Cara menggunakan Python untuk melaksanakan laporan analisis kerja

WBOY
WBOYke hadapan
2023-05-01 22:07:221267semak imbas

1. Matlamat artikel ini

Dapatkan permintaan Ajax dan huraikan medan yang diperlukan dalam JSON

Simpan data ke Excel

Simpan data ke MySQL untuk analisis mudah

2. Keputusan analisis

1 Pengenalan perpustakaan

Tahap gaji purata jawatan Python di lima bandar

2 🎜>

Kami memasukkan pertanyaan Syaratnya ialah Python sebagai contoh Syarat lain tidak dipilih secara lalai untuk melihat semua kedudukan Python Kemudian kami membuka konsol dan klik tab Rangkaian untuk melihat permintaan berikut:

Cara menggunakan Python untuk melaksanakan laporan analisis kerja

Berdasarkan hasil maklum balas, permintaan ini adalah yang kami perlukan. Kami boleh meminta alamat ini terus kemudian. Seperti yang dapat dilihat dari gambar, hasil berikut adalah maklumat setiap kedudukan.

Pada ketika ini kami tahu di mana untuk meminta data dan di mana untuk mendapatkan keputusan. Tetapi terdapat hanya 15 keping data pada halaman pertama dalam senarai keputusan Bagaimana untuk mendapatkan data pada halaman lain?

3. Permintaan parameter

Kami klik pada tab parameter, seperti berikut:

Mendapati bahawa tiga data borang telah diserahkan. Jelas sekali bahawa kd ialah kata kunci yang kami cari untuk. pn ialah nombor halaman semasa. Hanya lalai dahulu, jangan risau. Yang tinggal hanyalah membina permintaan untuk memuat turun 30 halaman data.

4 Bina permintaan dan huraikan data

Membina permintaan adalah sangat mudah, kami masih menggunakan perpustakaan permintaan untuk melakukannya. Mula-mula, kami membina data borang

data = {'first': 'true', 'pn': page, 'kd': lang_name}

dan kemudian menggunakan permintaan untuk meminta alamat url Data JSON yang dihuraikan telah selesai. Memandangkan Lagou mempunyai sekatan yang ketat pada perangkak, kita perlu menambah semua medan pengepala dalam penyemak imbas dan meningkatkan selang perangkak yang saya tetapkan kepada 10-20s kemudian, dan kemudian data boleh diperolehi seperti biasa.

import requests

def get_json(url, page, lang_name):
   headers = {
       'Host': 'www.lagou.com',
       'Connection': 'keep-alive',
       'Content-Length': '23',
       'Origin': 'https://www.lagou.com',
       'X-Anit-Forge-Code': '0',
       'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0',
       'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
       'Accept': 'application/json, text/javascript, */*; q=0.01',
       'X-Requested-With': 'XMLHttpRequest',
       'X-Anit-Forge-Token': 'None',
       'Referer': 'https://www.lagou.com/jobs/list_python?city=%E5%85%A8%E5%9B%BD&cl=false&fromSearch=true&labelWords=&suginput=',
       'Accept-Encoding': 'gzip, deflate, br',
       'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7'
   }
   data = {'first': 'false', 'pn': page, 'kd': lang_name}
   json = requests.post(url, data, headers=headers).json()
   list_con = json['content']['positionResult']['result']
   info_list = []
   for i in list_con:
       info = []
       info.append(i.get('companyShortName', '无'))
       info.append(i.get('companyFullName', '无'))
       info.append(i.get('industryField', '无'))
       info.append(i.get('companySize', '无'))
       info.append(i.get('salary', '无'))
       info.append(i.get('city', '无'))
       info.append(i.get('education', '无'))
       info_list.append(info)
   return info_list

4 Dapatkan semua data

Sekarang kami memahami cara menghuraikan data, satu-satunya perkara yang tinggal ialah meminta semua halaman secara berterusan data.

rreeee

Atas ialah kandungan terperinci Cara menggunakan Python untuk melaksanakan laporan analisis kerja. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam