这是作者的处女作,轻点喷。。。。

实习在公司时领导要求学习python,python的爬虫作为入门来说是十分友好的,话不多说,开始进入正题。

主要是爬去智联的岗位信息进行对比分析出java和python的趋势,爬取字段:工作地点,薪资范围,要求学历,要求工作经验,公司性质。

爬虫是将网页上的数据用程序抓取下来,保存在本地的一个过程,即代替人去操作那些重复的,无聊的,没有尽头的数据收集工作。学习爬虫之前最要有一些web方面的基础(没有没关系,网上都有资料),要清楚浏览器的请求流程:

浏览器发送请求给服务器,服务器响应请求后返回对应页面的源代码和数据,然后浏览器解析源代码,生成对应的页面。

那在这里就要说一下 了,动态网页的爬去和静态网页不同,动态网页中可能用到了什么ajax技术,js什么的,会使页面源代码和服务器解析后生成的代码有差异,所以刚开始最好先爬去静态页面练习(智联招聘是静态的)。

python的模块十分丰富,爬虫模块有urllib,urllib2,requests,其中requests是最受欢迎的模块,它提供了十分简便的请求方法,使我们能快速写出一个爬虫,例:

resp=requests.get("http://www.baidu.com")

这样的一行代码即向百度服务器发送了请求,可以通过print resp.content  来查看百度的源代码。

我们现在打开智联招聘,在搜索框输入java,然后点击搜索,可以看到网址栏路径的变化:

https://sou.zhaopin.com/jobs/searchresult.ashx?kw=java&sm=0&p=1

然后再搜索python你会发现,网址会变成:

https://sou.zhaopin.com/jobs/searchresult.ashx?kw=python&sm=0&p=1

哎呦,有点意思了啊,然后你再点击下一页你会发现,网址变成了:

https://sou.zhaopin.com/jobs/searchresult.ashx?kw=python&sm=0&p=2

是不是很有规律,是的,kw=*   *就是我们搜索框中输入的内容,p=  后面就是页码,

分析到这里,爬去智联基本就结束了,我们只需要将我们想搜索的关键词给到kw,然后用for循环去循环访问网页就可以了,

不过拿到网页源代码后需要提取出数据,这个步骤也有很多包可以选择,最基础的re,然后xpath,还有beautiful soup等等,选取一种解析即可,然后取出数据就ok了,给出自己的小白水平的代码:

#encoding:utf-8
import requests
import rehead={'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0'
    ,'Referer':'https://zhuanlan.zhihu.com/jiandanxinli/followers'
    ,'Accept':'application/json, text/plain, */*'
      }
def getHeml(head,num):html=requests.get\("http://sou.zhaopin.com/jobs/searchresult.ashx?jl=全国&kw=python&sb=1&sm=0&isfilter=0&fl=489&isadv=0&sg=9115fea9f0cd4119949b3ddecba0e984&p=%s"%(num),headers=head)html.encoding=html.apparent_encodingreturn html.contentstr3='<li class="newlist_deatil_two"><span>地点:(.*?)</span><span>公司性质:(.*?)</span><span>公司规模:(.*?)</span><span>经验:(.*?)</span><span>学历:(.*?)</span><span>职位月薪:(.*?)</span><li class="newlist_deatil_last">'
zz=re.compile(str3)
d=dict()
def action():for pagenum in range(90):html=getHeml(head,pagenum)xinxi=re.findall(zz,html)for x in xinxi:#说明:0代表地址,1为企业性质,2为企业规模,3为要求经验,4为要求最低学历,5,职位月薪
            if d.get(x[0]) is None:d[x[0]]=1
            else:d[x[0]]=d[x[0]]+1
                #print val
            print x[0]+" "+x[1]+" "+x[2]+" "+x[3]+" "+x[4]+" "+x[5]
if __name__=="__main__":action()

其实做到这里之后我们爬取到了java和python两种语言的岗位情况,可以针对地域,薪资,学历,工作经验要求等做出统计分析,然后可以用echarts进行可视化,得出分析结果,这里就不给出可视化的过程了。

加油,明天会更好!

python爬虫实例之爬取智联招聘数据相关推荐

  1. Python爬虫 scrapy框架 爬取智联招聘,并把数据存入数据库,存为json格式的数据

    First:创建项目:执行下面三句命令: 1. scrapy startproject zhilianzhaopin2. cd zhilianzhaopin3.scrapy genspider zhi ...

  2. python 爬虫学习:抓取智联招聘网站职位信息(二)

    在第一篇文章(python 爬虫学习:抓取智联招聘网站职位信息(一))中,我们介绍了爬取智联招聘网站上基于岗位关键字,及地区进行搜索的岗位信息,并对爬取到的岗位工资数据进行统计并生成直方图展示:同时进 ...

  3. 深圳python数据分析师招聘_Python爬取智联招聘数据分析师岗位相关信息的方法

    Python爬取智联招聘数据分析师岗位相关信息的方法 发布时间:2020-09-23 23:23:12 来源:脚本之家 阅读:88 进入智联招聘官网,在搜索界面输入'数据分析师',界面跳转,按F12查 ...

  4. Python爬虫项目:抓取智联招聘信息

    来自https://mp.weixin.qq.com/s/0SzLGqv2p0-IWSN3r8bOHA ''' Python爬虫之五:抓取智联招聘基础版 该文件运行后会产生一个代码,保存在这个Pyth ...

  5. BeautifulSoup爬取智联招聘数据

    BeautifulSoup爬取智联招聘数据 警告: 此项技术仅适用于练习,限制大量大规模爬取,在爬取中使用了个人cookie,请注意不要随意泄露,内含个人隐私信息! 如果过分爬取,会造成ip被封! 1 ...

  6. python爬虫多url_Python爬虫实战入门六:提高爬虫效率—并发爬取智联招聘

    之前文章中所介绍的爬虫都是对单个URL进行解析和爬取,url数量少不费时,但是如果我们需要爬取的网页url有成千上万或者更多,那怎么办? 使用for循环对所有的url进行遍历访问? 嗯,想法很好,但是 ...

  7. 招聘网python职位_Python+selenium爬取智联招聘的职位信息

    整个爬虫是基于selenium和Python来运行的,运行需要的包 1 mysql,matplotlib,selenium 需要安装selenium火狐浏览器驱动,百度的搜寻. 整个爬虫是模块化组织的 ...

  8. python 爬虫学习:抓取智联招聘网站职位信息(一)

    近期智联招聘的网站风格变化较快,这对于想爬取数据的人来说有些难受.因此,在前人基础上,我整理了针对智联招聘网站的最新结构进行数据抓取的代码,目前支持抓取职位搜索列表页面的列表项,并将职位列表以exlc ...

  9. 爬虫之多线程爬取智联招聘信息

    前言: 本文爬取对象为智联搜索大数据岗位内容信息,并将信息保存到本地. 案例中使用的HttpClientUtils工具类参考上一篇文章https://blog.csdn.net/qq_15076569 ...

最新文章

  1. android 让应用悬浮,快速回复+app下载
  2. 互联网协议 — IPSec 安全隧道协议 — NAT-T
  3. linux管道原子性写入,write(2)/ read(2)linux中进程之间的原子性
  4. linux网络编程之并发服务器的三种实现模型 (超级经典)
  5. 1159: 零起点学算法66——反话连篇
  6. DelayedOperationPurgatory分析
  7. Java算法之寻找旋转数组中的最小值
  8. 子类能不能继承父类的成员变量
  9. litepal更好的操作sqlite3,配置与基本操作
  10. git tag标签操作
  11. 转:如何破解超星打印页数限制
  12. 【报告分享】2021潮购人群洞察报告-巨量算数(附下载)
  13. Hadoop In Action
  14. 3D游戏:八、粒子系统与流动效果
  15. GaussDB灾备方案的设计
  16. 五分钟掌握微信小程序轮播图
  17. 头条系 巨量算数 _signature
  18. 美国封杀华为无望 全面测试或成唯一出路
  19. ABB机器人二次开发:使用Web网页读取机器人系统信息的操作方法
  20. 【Verilog基础】CMOS逻辑门实现基础功能(反相器/与非门/或非门/与门/或门)

热门文章

  1. jQuery MiniUI 开发教程 导航控件 ContextMenu:右键菜单(四)
  2. Qt版本-塔防游戏实现一
  3. 数控车削加工中妙用G00及保证尺寸精度的技巧
  4. ffprobe常用命令总结
  5. logback输出json格式日志并带traceId
  6. 微软面试题,你会做几题?
  7. 用C语言实现strlen函数
  8. a15和骁龙8gen2哪个好 a15和骁龙8gen2对比功耗
  9. 用c语言为程序分配内存,关于C语言程序的内存分配的入门知识学习
  10. 算法学习02:认识O(logN)的排序