Cet article présente l'utilisation de Python pour capturer les informations du site Web de recherche d'emploi
Cette fois, les informations capturées sont les informations après la recherche de « analyste de données » sur le site de recrutement de Zhaopin. Version
python : python3.5.
Le package principal que j'utilise est Beautifulsoup Requests csv
De plus, j'ai également récupéré une simple description du contenu du recrutement.
Après la sortie du fichier dans un fichier csv, j'ai constaté qu'il y avait des caractères tronqués lors de son ouverture avec Excel, mais il n'y a eu aucun problème lors de son ouverture avec un logiciel de fichiers (tel que bloc-notes).
Afin de l'afficher correctement lors de son ouverture dans Excel, j'ai utilisé des pandas pour convertir les éléments suivants et ajouté les noms de colonnes ci-dessus. Une fois la conversion terminée, elle peut être affichée correctement. Concernant la conversion avec les pandas, vous pouvez vous référer à mon blog :
Comme le contenu de recrutement comporte beaucoup de descriptions, enregistrez enfin le fichier csv sous forme de fichier Excel et ajustez le format pour une visualisation facile.
L'effet final est le suivant :
Le code d'implémentation est le suivant : Le code pour l'exploration des informations est le suivant :
# Code based on Python 3.x # _*_ coding: utf-8 _*_ # __Author: "LEMON" from bs4 import BeautifulSoup import requests import csv def download(url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0'} req = requests.get(url, headers=headers) return req.text def get_content(html): soup = BeautifulSoup(html, 'lxml') body = soup.body data_main = body.find('div', {'class': 'newlist_list_content'}) tables = data_main.find_all('table') zw_list = [] for i,table in enumerate(tables): if i == 0: continue temp = [] tds = table.find('tr').find_all('td') zwmc = tds[0].find('a').get_text() zw_link = tds[0].find('a').get('href') fkl = tds[1].find('span').get_text() gsmc = tds[2].find('a').get_text() zwyx = tds[3].get_text() gzdd = tds[4].get_text() gbsj = tds[5].find('span').get_text() tr_brief = table.find('tr', {'class': 'newlist_tr_detail'}) brief = tr_brief.find('li', {'class': 'newlist_deatil_last'}).get_text() temp.append(zwmc) temp.append(fkl) temp.append(gsmc) temp.append(zwyx) temp.append(gzdd) temp.append(gbsj) temp.append(brief) temp.append(zw_link) zw_list.append(temp) return zw_list def write_data(data, name): filename = name with open(filename, 'a', newline='', encoding='utf-8') as f: f_csv = csv.writer(f) f_csv.writerows(data) if __name__ == '__main__': basic_url = 'http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%85%A8%E5%9B%BD&kw=%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%B8%88&sm=0&p=' number_list = list(range(90)) # total number of page is 90 for number in number_list: num = number + 1 url = basic_url + str(num) filename = 'zhilian_DA.csv' html = download(url) # print(html) data = get_content(html) # print(data) print('start saving page:', num) write_data(data, filename)
Le code converti à l'aide de pandas est le suivant :
# Code based on Python 3.x # _*_ coding: utf-8 _*_ # __Author: "LEMON" import pandas as pd df = pd.read_csv('zhilian_DA.csv', header=None) df.columns = ['职位名称', '反馈率', '公司名称', '月薪', '工作地点', '发布日期', '招聘简介', '网页链接'] # 将调整后的dataframe文件输出到新的csv文件 df.to_csv('zhilian_DA_update.csv', index=False)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!