Verwenden Sie Python, um Website-Informationen für die Jobsuche abzurufen

高洛峰
Freigeben: 2017-03-19 14:05:29
Original
2074 Leute haben es durchsucht

In diesem Artikel wird die Verwendung von Python zum Erfassen von Website-Informationen für die Jobsuche vorgestellt.

Dieses Mal handelt es sich bei den erfassten Informationen um die Informationen nach der Suche nach „Datenanalysten“ auf der Zhaopin-Rekrutierungswebsite.

PythonVersion: Python3.5.

Das Hauptpaket, das ich verwende, ist Beautifulsoup + Requests+csv

Darüber hinaus habe ich mir auch eine kurze Beschreibung des Rekrutierungsinhalts geholt.

Nachdem die Datei in eine CSV-Datei ausgegeben wurde, stellte ich fest, dass beim Öffnen mit Excel einige verstümmelte Zeichen auftraten, beim Öffnen mit Dateisoftware (z. B Notepad++).

Um es beim Öffnen in Excel korrekt anzuzeigen, habe ich Folgendes mit Pandas konvertiert und die oben genannten Spaltennamen hinzugefügt. Nachdem die Konvertierung abgeschlossen ist, kann sie korrekt angezeigt werden. Informationen zur Konvertierung mit Pandas finden Sie in meinem Blog:

Da der Rekrutierungsinhalt viele Beschreibungen enthält, speichern Sie die CSV-Datei schließlich als Excel-Datei und passen Sie das Format für eine einfache Anzeige an.

Der Endeffekt ist wie folgt: Verwenden Sie Python, um Website-Informationen für die Jobsuche abzurufen

Der Implementierungscode lautet wie folgt: Der Code für das Informations-Crawling lautet wie folgt:

# 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)
Nach dem Login kopieren

Der mit Pandas konvertierte Code lautet wie folgt:

# 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)
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonVerwenden Sie Python, um Website-Informationen für die Jobsuche abzurufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage