(转)python爬虫实例——爬取智联招聘信息
受友人所托,写了一个爬取智联招聘信息的爬虫,与大家分享。
本文将介绍如何实现该爬虫。
目录
- 网页分析
- 实现代码分析
- 结果
- 总结
- github代码地址
网页分析
以https://xiaoyuan.zhaopin.com/full/538/0_0_160000_1_0_0_0_1_0 为例。
网页的组织结构如下:
将网页代码保存为html文件(文件见最后链接),使用的软件是Sublime Text,我们所需的内容如下图所示:
那么我们需要爬取的内容包括(以上图为例):
- 职位详细介绍的url:xiaoyuan.zhaopin.com/job/CC000920419J9000072500
- 职位名称:C/C++
- 公司名称:中国移动通信有限公司-中国移动在线服务有限公司
- 发布时间:19小时前
- 职责描述:1、负责图像识别算法开发、优化和硬件驱动开发调试工作;2、根据算法工程师研发结果进行底层算法模型编写、优化和API接口开发工作;3、配合硬件工程师进行硬件接口驱动开发、调试和优化工作;……
实现代码分析
# -*- coding:utf-8 -*-
import urllib.request
import urllib.parse
import re
#用来创建excel文档并写入数据
import xlwt
- 1
- 2
- 3
- 4
- 5
- 6
- 导入库,xlwt是将数据写入excel时需要用到的库
#获取网页的源码
def get_content():#网址url = 'https://xiaoyuan.zhaopin.com/full/538/0_0_160000_1_0_0_0_1_0'#打开网址a = urllib.request.urlopen(url)#读取源代码并转为unicodehtml = a.read().decode('utf-8')return html
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 可以根据需要将url换成自己需要的网址
#正则匹配要爬取的内容
def get(html):#正则匹配式reg = re.compile(r'class="searchResultJobName">.*?<a joburl href="//(.*?)" class="fl __ga__fullResultcampuspostname_clicksfullresultcampuspostnames_001">(.*?)</a>.*?<p class="searchResultCompanyname"><span>(.*?)</span>.*?<span>发布时间:<em>(.*?)</em></span>.*?职责描述:<span>(.*?)</span>',re.S)#进行匹配items = re.findall(reg,html)#print(items)#计算匹配到的数目(一整条记录算一个)items_length = len(items) return items,items_length
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 正则匹配式不能忽略注意换行符和空格,.*?代替任意长的字符,如果正则匹配式写错了,程序不会报错,但匹配结果会为空。
- 正则匹配式的书写要以在于用(.*?)代替要爬取的内容,前后要有标志性的class,这样才能够匹配到正确的内容。
#爬取到的内容写入excel表格
def excel_write(items,index):#将职位信息写入excel,item为tuple元组for item in items:#共五个信息,写五列for i in range(0,5):#print item[i]#.write(行,列,数据)ws.write(index,i,item[i])#每成功写入一条就输出对应的行编号print(index)#index+1,写下一行index+=1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 若怀疑正则匹配写错了,可以通过输出items(这是所有爬取的信息)来查错。
- 新手建议一个个匹配,匹配成功一个,再把正则匹配式拓展,写下一个匹配,这样容易查出匹配式的差错(方便调试)
#excel名称
newTable="智联招聘岗位爬虫结果.xls"
#创建excel文件,声明编码为utf-8
wb = xlwt.Workbook(encoding='utf-8')
#创建表格
ws = wb.add_sheet('sheet1')
#表头信息
headData = ['url','职位','公司','发布时间','职责描述']
#写入表头信息
for colnum in range(0, 5):ws.write(0, colnum, headData[colnum], xlwt.easyxf('font: bold on'))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 保存结果,excel名字可以自己改,表头信息是按照爬取信息的顺序排列的
#从第2行开始写入
index = 1
#爬取信息
items,items_length = get(get_content())
#写入excel
excel_write(items,index)
#保存excel
wb.save(newTable)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 这是主程序
结果
这就是运行该程序后保存的excel文件,可见内容都正确的爬取了下来。
总结
本文实现的爬虫适用于搜索结果只有一页的网页,多页检索请见
http://www.cnblogs.com/Beyond-Ricky/p/6771028.html
github代码地址
完整代码文件和excel文件见:
https://github.com/IrisChu1108/Web-Crawler-for-ZhiLian-Recruit
以上就是全部内容了,有问题欢迎留言指正!大家共同进步~
(转)python爬虫实例——爬取智联招聘信息相关推荐
- python爬虫实例——爬取智联招聘信息
受友人所托,写了一个爬取智联招聘信息的爬虫,与大家分享. 本文将介绍如何实现该爬虫. 目录 网页分析 实现代码分析 结果 总结 github代码地址 网页分析 以https://xiaoyuan.zh ...
- Python爬虫:抓取智联招聘岗位信息和要求(进阶版)
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...
- python+selenium爬取智联招聘信息
python+selenium爬取智联招聘信息 需求 准备 代码 结果 需求 老板给了我一份公司名单(大概几百家如下图),让我到网上看看这些公司分别在招聘哪些岗位,通过分析他们的招聘需求大致能推断出我 ...
- 克服反爬虫机制爬取智联招聘网站
一.实验内容 1.爬取网站: 智联招聘网站(https://www.zhaopin.com/) 2.网站的反爬虫机制: 在我频繁爬取智联招聘网站之后,它会出现以下文字(尽管我已经控制了爬虫的爬 ...
- 爬取智联招聘信息并存储
#-*- coding: utf-8 -*- import urllib.request import os,time from bs4 import BeautifulSoup #爬取智联招聘网站的 ...
- Python爬虫:抓取智联招聘岗位信息和要求(基础版)
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:王强 ( 想要学习Python?Python学习交流群 ...
- 爬取智联招聘信息并且存入数据库
任务爬取智联页面的招聘信息并且存入数据库. 由于是初次尝试 这里选择了固定的页面存入数据库. 首先确定需要爬取的页面 http://sou.zhaopin.com/jobs/searchresult. ...
- 使用python动手爬取智联招聘信息并简单分析
根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种 通用网络爬虫,是捜索引擎抓取系统(Baidu.Google.Yahoo等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联 ...
- Python利用Scrapy爬取智联招聘和前程无忧的招聘数据
爬虫起因 前面两个星期,利用周末的时间尝试和了解了一下Python爬虫,紧接着就开始用Scrapy框架做了一些小的爬虫,不过,由于最近一段时间的迷茫,和处于对职业生涯的规划.以及对市场需求的分析, ...
最新文章
- 7月23日 R进行层次聚类算法的继续完善
- 【LeetCode】0046.全排列 (递归详解)
- 根据控件句柄读控件在内存的数据_WPF 2020界面开发新纪元——Accordion控件、图表功能升级...
- 禁止 VMware Fusion 自动调整 Windows 分辨率
- 17.IDA-基本块的定义
- 微机原理换行代码_微机原理课程设计——汇编输出杨辉三角
- LoadRunner小技巧集锦
- 硬件基础知识--(10)三极管的工作原理
- 第三方库pod错误:ld: library not found for -lXXX
- django 与 mysql 勾结指南
- Android官方多渠道方案详解
- CGJ02、BD09、西安80、北京54、CGCS2000常用坐标系详解
- 游戏场景设计探究:冬夏季节光色模型
- 暴力裁员绝症员工,网易刚刚道歉!丁磊沉默,刘强东意外刷屏:说了这句硬气的话……
- 梁定郊:一个人行贿赠西藏、新疆狂 野之旅
- 第一篇:瑞吉外卖项目概述
- Istio 101:Service Mesh的未来将与Knative和Apahce Whisk等技术和谐共存——采访RedHat的Istio产品经理
- PIPE接口基本描述
- INSEC WORLD倒计时15天开幕!嘉宾阵容、重点议题前瞻!
- Linux实战技巧--文件系统操作(五)--打包压缩和解压缩(tar)
热门文章
- 微软认证系统工程师MCSE(院校IT课程)
- H5与小程序该怎么选,各自的优缺点
- 使用ResNet18网络实现对Cifar-100数据集分类
- EasyExcel 模板导入导出
- SSHFS--Linux快速挂载
- mysql 添加索引 创建索引
- [益智]:一个五位数乘以4,得数是这五位数倒过来,求这个五位数
- VaR和CVaR举例说明_笔记转载
- Mac安装office
- [19/06/06-星期四] HTML基础_文本标签、列表(有序、无序、定义)、文本格式化(单位、字体、大小写、文本修饰、间距、对齐文本)...