• 大小: 243KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: Python
  • 标签: python  爬虫  

资源简介

智联招聘爬取工作岗位薪资分布以及岗位要求(python),直接运行可用,需要自己下载依赖的包,比如scrapy,pandas,matplotlib等...可用根据百度和错误提示一步一步安装依赖包

资源截图

代码片段和文件信息

#-*- coding: utf-8 -*-
import re
import csv
import jieba
import numpy
import requests
from tqdm import tqdm
import pandas as pd
from scipy.misc import imread
from wordcloud import WordCloud ImageColorGenerator
from collections import Counter
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt
from requests.exceptions import RequestException

def get_one_page(city keyword region page):
    ‘‘‘
    获取网页html内容并返回
    ‘‘‘
    paras = {
        ‘jl‘: city         # 搜索城市
        ‘kw‘: keyword      # 搜索关键词 
        ‘isadv‘: 0         # 是否打开更详细搜索选项
        ‘isfilter‘: 1      # 是否对结果过滤
        ‘sg‘: ‘d5259c62115f44e3bbb380dc88411919‘
        ‘p‘: page          # 页数
        ‘re‘: region        # region的缩写,地区,2005代表海淀
    }

    headers = {
        ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/63.0.3239.132 Safari/537.36‘
        ‘Host‘: ‘sou.zhaopin.com‘
        ‘Referer‘: ‘https://www.zhaopin.com/‘
        ‘Accept‘: ‘text/htmlapplication/xhtml+xmlapplication/xml;q=0.9image/webpimage/apng*/*;q=0.8‘
        ‘Accept-Encoding‘: ‘gzip deflate br‘
        ‘Accept-Language‘: ‘zh-CNzh;q=0.9‘
    }

    url = ‘https://sou.zhaopin.com/jobs/searchresult.ashx?‘
    try:
        # 获取网页内容,返回html数据
        response = requests.get(url params=paras headers=headers)
        print(response.url)
        # 通过状态码判断是否获取成功
        if response.status_code == 200:
            return response.text
        return None
    except RequestException as e:
        return None

def parse_one_page(html):
    ‘‘‘
    解析HTML代码,提取有用信息并返回
    ‘‘‘
    # 正则表达式进行解析
    pattern = re.compile(‘(.*?).*?‘ # 匹配职位详情地址和职位名称
        ‘.*? target=“_blank“>(.*?).*?‘                             # 匹配公司名称
        ‘(.*?)‘ re.S)                                            # 匹配月薪      

    # 匹配所有符合条件的内容
    items = re.findall(pattern html)   

    for item in items:
        job_name = item[1]
        job_name = job_name.replace(‘‘ ‘‘)
        job_name = job_name.replace(‘
‘ ‘‘)

        salary_avarage = 0
        temp = item[3]
        if temp != ‘面议‘:
            idx = temp.find(‘-‘)
            # 求平均工资
            salary_avarage = (int(temp[0:idx]) + int(temp[idx+1:]))//2

        # html = get_detail_page(job_url)
        # print(html)
        yield {
            ‘job‘: job_name
            ‘job_url‘: item[0]
            ‘company‘: item[2]
            ‘salary‘: salary_avarage
        }

def get_detail_page(url):
    ‘‘‘
    获取职位详情页html内容并返回
    ‘‘‘
    headers = {
        ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/63.0.3239.132 Safari/537.36‘
        ‘Host‘: ‘jobs.zhaopin.com‘
        ‘Accept‘: ‘text/htmlapplication/xhtml+xmlapplication/xml;q=0.9image/webpimage/apng*/*;q=

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     134783  2018-07-10 15:19  智联招聘爬取工作岗位薪资分布以及岗位要求(python)\2.png

     文件      93404  2018-07-10 17:10  智联招聘爬取工作岗位薪资分布以及岗位要求(python)\output.png

     文件       8295  2018-07-10 15:40  智联招聘爬取工作岗位薪资分布以及岗位要求(python)\stopwords.txt

     文件      10665  2018-07-10 17:38  智联招聘爬取工作岗位薪资分布以及岗位要求(python)\zhilian.py

     文件      72208  2018-07-10 17:08  智联招聘爬取工作岗位薪资分布以及岗位要求(python)\zl_上海_java工程师.csv

     文件     289072  2018-07-10 17:08  智联招聘爬取工作岗位薪资分布以及岗位要求(python)\zl_上海_java工程师.txt

     目录          0  2018-07-10 19:47  智联招聘爬取工作岗位薪资分布以及岗位要求(python)

----------- ---------  ---------- -----  ----

               608427                    7


评论

共有 条评论