首页 > 编程 > Python > 正文

Python爬取智联招聘数据分析师岗位相关信息的方法

2019-11-25 12:00:20
字体:
来源:转载
供稿:网友

进入智联招聘官网,在搜索界面输入‘数据分析师',界面跳转,按F12查看网页源码,点击network

 选中XHR,然后刷新网页

可以看到一些Ajax请求, 找到画红线的XHR文件,点击可以看到网页的一些信息

在Header中有Request URL,我们需要通过找寻Request URL的特点来构造这个请求网址,

点击Preview,可以看到我们所需要的信息就存在result中,这信息基本是json格式,有些是列表;

下面我们通过Python爬虫来爬取上面的信息;

代码如下:

import requestsfrom urllib.parse import urlencodeimport json#from requests import codes#import os#from hashlib import md5#from multiprocessing.pool import Pool#import re  def get_page(offset):  params = {    'start': offset,    'pageSize': '90',    'cityId': '530',    'salary': '0,0',    'workExperience': '-1',    'education': '-1',    'companyType': '-1',    'employmentType': '-1',    'jobWelfareTag': '-1',    'kw': '数据分析师',    'kt': '3',    '_v': '0.77091902',    'x-zp-page-request-id': '8ff0aa73bf834b408f46324e44d89b84-1562722989022-210101',    'x-zp-client-id': '2dc4c9a4-e80d-4488-84a3-03426dd69a1e'          }  base_url = 'https://fe-api.zhaopin.com/c/i/sou?'  url = base_url + urlencode(params)  try:    resp = requests.get(url)    print(url)    if 200 == resp.status_code:      print(resp.json())      return resp.json()  except requests.ConnectionError:    return None  def get_information(json_page):  if json_page.get('data'):    results = json_page.get('data').get('results')        for result in results:       yield {         'city': result.get('city').get('display'),          'company': result.get('company').get('name'),          #'welfare':result.get('welfare'),          'workingExp':result.get('workingExp').get('name'),          'salary':result.get('salary'),          'eduLevel':result.get('eduLevel').get('name')        }print('succ') def write_to_file(content):   with open('result.txt','a',encoding='utf-8') as f:      print(type(json.dumps(content)))      f.write(json.dumps(content,ensure_ascii=False)+'/n')      def main(offset):  json_page=get_page(offset)    for content in get_information(json_page):    write_to_file(content)  if __name__=='__main__':   for i in range(10):      main(offset=90*i)

爬取结果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表