在智联招聘上用scrapy+selenium 进行简历自动投递

所需要的python包

  1. 安装scrapy
  2. 安装selenium
  3. 安装 chrome driver

安装过程请参考其他资料, 这里就不在重复了. 主要一点是 chromedriver的版本同chrome的版本需要对应. 这个请参考 chromedriver官网

智联网页分析

登陆分析:

新版的智联招聘https://www.zhaopin.com/ 登陆采用手机号码发送验证码的方式进行登陆, 本文不对智联招聘进行模拟登陆, 我们仅采用手动登陆的方式进行登陆,并获取登陆后的 cookies. 模拟登陆设置机器学习等知识,太过复杂不适合我们初学者.

各个重要链接的分析

智联可以根据关键字搜索来获取你想要的招聘信息, 搜索网页一般翼 sou.zhaopin.com为主体 后面跟上各种参数.
这里我列举一个url : https://sou.zhaopin.com/?p=1&jl=538&sf=0&st=0&kw=IT&kt=3

p: 页数
sf: 起始薪水
st: 最高薪水
kw: keyword 搜索关键字
jl跟kt 应该跟用户有关,这里暂时不用理会

这个链接会获取各个招聘岗位的主体, 每个主体里又会有详细的工作岗位链接 这个工作安慰链接以 jobs.zhaopin.com 开头 比如 https://jobs.zhaopin.com/CC538140986J00242862803.htm

这里是具体的单个岗位的招聘详情, 有职位, 薪水, 公司, 招聘要求等所有详细的信息

以上两个链接是我们scrapy跟selenium重点需要处理的页面.

页面处理

单独页面的爬去 如果是一些简单的页面, 我们可以用request, bs4 等轻量型的爬虫工具来做, 但是你可以会发现一个问题 比如用request来操作:

import requests
res = requests.get(url)
print(res.text)

这里你会发现并没有任何招聘的信息, 原因是智联网页加载的时候需要执行js脚本 从而来获取招聘list的信息, 所以这里我们需要用selenium来控制网页的加载,driver.get(url)同时要注意 加载是有时间的, 所以需要用WebDriverWait函数来等待你需要获取的哪个元素加载完成,才能够返回. 这个是重点,或者你scrapy parse的时候 很可能获取不到信息

scrapy 代码部分讲解

创建scrapy 项目

这里我们架设你了解scrapy的常用语法以及流程

scrapy genspider zhaopin 'www.zhaopin.com'

入口代码分析:

#!/usr/bin/env python
#-*- coding: UTF-8 -*-

"""
@version: Python3.6.1
@author:  Justinli

"""
import scrapy
from .tool import parseTitle
from ..items import ZhaopinItem
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import re
import logging
import time

logger = logging.getLogger(__name__)

class MaitianSpider(scrapy.Spider):
    name = "zhaopin"
    def __init__(self):
        self.options = Options()
        self.options.add_argument("--headless")
        self.options.add_argument('--no-sandbox')
        self.options.add_argument(
            'User-Agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"')
        self.options.add_argument('Accept-Encoding="gzip, deflate, br"')
        self.options.add_argument('Accept-Language="zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7"')
        self.options.add_argument(
            'Accept="text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"')
        self.options.add_argument('Host="i.zhaopin.com"')
        self.options.add_argument('Referer="https://www.zhaopin.com/"')
        self.options.add_argument('Upgrade-Insecure-Requests="1"')
        self.options.add_argument('--no-sandbox')
        self.options.add_argument("--disable-gpu")
        self.options.add_argument("--window-size=1920x1080")
        self.driver = webdriver.Chrome(chrome_options=self.options)

        self.cookiestr = {‘这里填入你的cookies str 直接从浏览器流复制过来就可以了不用这里格式,因为下面的代码会做操作’}
  
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值