이 기사에서는 Python을 사용하여 구직 사이트 정보를 캡처하는 방법을 소개합니다
이번에 캡처된 정보는 Zhaopin 채용 사이트에서 "데이터 분석가"를 검색한 후의 정보입니다.
python 버전: python3.5.
제가 주로 사용하는 패키지는 Beautifulsoup + Requests+csv입니다
추가적으로 모집 내용에 대한 간략한 설명도 함께 가져왔습니다.
파일을 csv 파일로 출력한 후 엑셀로 열었을 때 문자 깨짐 현상이 있는 것을 발견했으나, 파일 소프트웨어(예: 메모장++).
엑셀에서 열었을 때 제대로 표시되도록 pandas를 이용하여 다음과 같이 변환하고 위의 컬럼명을 추가했습니다. 변환이 완료되면 올바르게 표시될 수 있습니다. pandas로의 변환에 대해서는 제 블로그
를 참고하시면 됩니다. 채용 내용에 대한 설명이 많기 때문에 마지막으로 csv 파일을 엑셀 파일로 저장하고 보기 쉽도록 형식을 조정하세요.
최종 효과는 다음과 같습니다.
구현 코드는 다음과 같습니다. 정보 크롤링을 위한 코드는 다음과 같습니다.
# 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)
사용 Pandas 변환 코드는 다음과 같습니다.
# 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)
위 내용은 Python을 사용하여 구직 웹사이트 정보 얻기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!