最近导师让自己摸索摸索Python爬虫,好了就开始一发不可收拾的地步。正巧又碰到有位同学需要一些求职信息对求职信息进行数据分析,本着练练手的目的写了用Python爬取智联招聘网站的信息。这一爬取不得了,智联网站更新了,以前的大佬们的代码不能用,而且全是动态加载,反爬虫着实对于小白的我实在是累的不行,静态还没怎么学会动态的爬取就开始了,各种遇见坑,再出来。不过终于功夫不负有心人,也算是马马虎虎搞出来了。先上图

一个文件里面大概不到3000条数据,不算多。

首先,我就不讲什么是selenium,以及怎么安装还有chrome 的headless怎么使用。这里csdn上面有很多大牛已经给予完美的解释了ps主要我也说不好只是了解以及使用。

当你把这些基础性工作做完了,比如Python安装完毕,以及selenium PyQuery安装完毕后就可以看我的代码详解了。其实大家都是小白所以代码会有详细的注释,看看注释就明白了。废话不多说直接上代码,有啥不懂得欢迎咨询我。jianghaifu@opopto.com,或者留言给我。谢谢各位看官。

#首页负责调用
import savecsv as savepagenum=int(input("输入您要爬取的页数"))
save.savecsv(pagenum)
# 爬取文章
from selenium import webdriver
import time, random
from pyquery import PyQuery as pq
import os
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keysdef _urldata_(url, pageNum):# 新版本不支持phantomjs# browser = webdriver.PhantomJS()# 采用浏览器自带的无头浏览器进行查询chrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')browser = webdriver.Chrome(options=chrome_options)browser.get(url)# # 定义一个大的列表将一个职位所有的招聘信息都放进去joblist = []# 点击下一页进行访问页面for i in range(1, pageNum+1):# 对动态网页查询并使用pyquery进行分析doc = pq(browser.page_source)# 获取一个多个相同属性# htm = doc('[class="listItemBox clearfix"]')# print(htm)html = doc('[class="listItemBox clearfix"]').items()listSum = []# 获取单个属性for tb in html:# 定义一个空字典,用于储存数组item = {}# 提取岗位job_title_info = tb('.job_title')job_title = job_title_info.attr('title')# 获取公司名company_title = tb('.company_title').text()# 获取薪资job_saray = tb('.job_saray').text()# 获取地址,工作要求年限,学历job_demand = tb('.demand_item').items()job_demand_info = []for job in job_demand:job_demand_info.append(job.text())# 获取企业名称以及企业人数commpanyDesc = tb('.info_item').items()company_info = []for job in commpanyDesc:company_info.append(job.text())# 获取更详细的信息job_welfare = tb('.welfare_item').items()job_welfare_info = []for job in job_welfare:job_welfare_info.append(job.text())job_welfare_info_list = "|".join(job_welfare_info)# 填入数组item['job_title'] = job_titleitem['company_title'] = company_titleitem['job_saray'] = job_sarayitem['job_demand_info_address'] = job_demand_info[0]item['job_demand_info_age'] = job_demand_info[1]item['job_demand_info_back'] = job_demand_info[2]item['company_info_back'] = company_info[0]item['job_welfare_info_list'] = job_welfare_info_listlistSum.append(item)# 将所有的页面的内容进行保存joblist += listSumbrowser.find_elements_by_class_name('btn-pager')[1].click()print("爬取第" + str(i) + "页")print("数据共" + str(len(listSum)) + "条")# 防止被和谐p = random.randint(1, 4)time.sleep(p)return joblistbrowser.quit()# _urldata_('https://sou.zhaopin.com/?pageSize=60&jl=530&kw=python&kt=3')
# 保存成csv格式
import csv
import spiderurl as combindef savecsv(pageNum):# 定义一个大的列表将所有的招聘信息都放进去job_name = ['python', 'java', '机器学习', '数据挖掘', 'c++']# job_name = ['python']# 工作名字for job in job_name:# print(job)joblist = []# 将页面读取的数据保存起来# 每个工作的名字工作信息url = 'https://sou.zhaopin.com/?pageSize=60&jl=530&kw=' + job + '&kt=3'print("开始爬取工作:"+job+"地址是:"+url)# 拼接完成爬取文件并解析joblist = combin._urldata_(url, pageNum)# 把数据存成csv格式filenames = ["job_title", "company_title", "job_saray", "job_demand_info_address", "job_demand_info_age","job_demand_info_back","company_info_back", "job_welfare_info_list"]for list in joblist:# 以字典的形式写入文件with open(job + ".csv", "a", errors="ignore", newline='') as fp:f_csv = csv.DictWriter(fp, fieldnames=filenames)f_csv.writerow(list)

好了就这三个文件,很简单的。喜欢就去尝试尝试,当然我的git上面也有https://github.com/Proshare/webSpider_zhilian.git

欢迎评论,我会及时回复的。

selenium+PyQuery+chrome headless 爬取智联招聘求职信息相关推荐

  1. Python爬虫爬取智联招聘职位信息

    目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中 #coding:utf-8 import urllib2 import re import xlwtclass ZLZ ...

  2. 【Python爬虫案例学习20】Python爬虫爬取智联招聘职位信息

    目的:输入要爬取的职位名称,五个意向城市,爬取智联招聘上的该信息,并打印进表格中 ####基本环境配置: Python版本:2.7 开发工具:pycharm 系统:win10 ####相关模块: im ...

  3. Python爬取智联招聘职位信息

    这是一次失败的尝试 , 事情是这样的-- 1.起因 前段时间刚刚学完爬虫,于是准备找个项目练练手.因为想要了解一下"数据挖掘"的职位招聘现状,所以我打算对'智联招聘'下手了.网上当 ...

  4. 爬取智联招聘有用信息存入数据库

    Hello!您能点开我的博客,我感到很荣幸,希望能对您有帮助.我是第一次写,如有不足之处,还请前辈多多指教. 以下是我写的一个爬虫小项目,爬取了智联招聘的一个网页里对于找工作的亲们比较感兴趣的几条信息 ...

  5. python爬取智联招聘职位信息(单进程)

    我们先通过百度搜索智联招聘,进入智联招聘官网,一看,傻眼了,需要登录才能查看招聘信息 没办法,用账号登录进去,登录后的网页如下: 输入职位名称点击搜索,显示如下网页: 把这个URL:https://s ...

  6. java爬取智联招聘职位信息

    第一次写爬虫,案例比较简单,就在智联招聘网站上爬取职位信息. 技术点:IO流,集合,Jsoup使用,以及前端的知识 代码如下: package com.wty.utils;import java.io ...

  7. 爬虫练习二:爬取智联招聘职位信息

    1. 简介 因为想要找到一个数据分析的工作,能够了解到市面上现有的职位招聘信息也会对找工作有所帮助. 今天就来爬取一下智联招聘上数据分析师的招聘信息,并存入本地的MySQL. 2. 页面分析 2.1 ...

  8. pythton爬取智联招聘职位信息

    前言 在智联招聘https://sou.zhaopin.com/时,发现无法直接去解析获得的html文本,它的数据是用js动态加载的,数据内容存储在json文件中,所以不能用以前的方法使用xpath. ...

  9. 智联招聘python岗位_Python爬虫爬取智联招聘职位信息

    import urllib2 import re import xlwt '''遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!''' cl ...

最新文章

  1. 图解法求最优解的例题_【第四章 最优化理论】4.2 带约束最优化
  2. 如何在sharepoint2010中配置Google Anlytics 分析服务
  3. Gradle Sync: Wait for the other thread to finish acquiring the distribution
  4. 乌班图14.04安装搜狗输入法
  5. 7、Power Map—实例:添加二维数据表以及批注
  6. JS高级程序设计笔记——事件(一)
  7. C#中 类和结构 值类型和引用类型以及 值传递和引用传递
  8. mysql start
  9. python 仅保留数字_Python基本语法元素 | 语法元素分析
  10. SAP License:SAP软件实施要点
  11. IP数量就是计算机数量吗,如何利用bash/python计算IP子网容纳计算机数量
  12. 今天心情好,一起探讨下《送给大家的200兆SVN代码服务器》怎么管理我们的VS代码?...
  13. 系统类配置(三)【ubuntu14.04或者ubuntu16.04 配置caffe】
  14. 安全工具系列 -- 信息收集(二)
  15. 怎样在mac系统里将文件拷贝到移动硬盘教程
  16. UNIX环境高级编程学习总结
  17. 关于电子科技大学学生用餐状况的一些调查
  18. 教师资格证面试试讲规律!
  19. SSM框架下打卡签到增加积分功能的实现
  20. 共享单车的扫码解锁原理是什么?2222

热门文章

  1. linux关闭telnet服务6,centos6 开启telnet服务
  2. ELK学习之入门搭建使用
  3. 上传项目到码云或GitHub
  4. MATLAB contour与contourf的区别
  5. istio部署bookinfo
  6. Java豆瓣电影TOP250爬虫
  7. 关于Oracle连接提示报ORA-013031:insufficient privileges错误以及ora01034和ora27101解决方法
  8. 2021-08-03 在ubuntu 18.04上创建基于VNC的局域网内远程工作环境
  9. 一些简单的C语言代码
  10. 【毕业设计】 python小游戏毕设 - 塔防小游戏设计与实现