网站建设资讯

NEWS

网站建设资讯

如何爬取51job发布的工作职位-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

网站设计制作、成都网站设计,成都做网站公司-创新互联已向上1000家企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。

小编给大家分享一下如何爬取51job发布的工作职位,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

概述

不知从何时起,Python和爬虫就如初恋一般,情不知所起,一往而深,相信很多朋友学习Python,都是从爬虫开始,其实究其原因,不外两方面:其一Python对爬虫的支持度比较好,类库众多。其二Pyhton的语法简单,入门容易。所以两者形影相随,不离不弃,本文主要以一个简单的小例子,简述Python在爬虫方面的简单应用,仅供学习分享使用,如有不足之处,还请指正。

涉及知识点

本例主要爬取51job发布的工作职位,用到的知识点如下:

  • 开发环境及工具:主要用到Python3.7 ,IDE为PyCharm
  • requests类库:本类库封装了python的内置模块,主要用于网络的请求和获取数据,可以支持不同形式的请求。
  • BeautifulSoup库:主要用于解析获取的数据,包括Html,Xml,Json等不同的格式。
  • 数据持久化:主要是将内存中的数据,保存到数据库或者文件中。
     

爬虫的基本步骤

爬虫的基本步骤,如下图所示:

如何爬取51job发布的工作职位

爬取目标

如有要爬取相关内容,首先要对爬取的目标进行分析,了解其目录结构,才能进行解析。本例主要爬取51job中的工作列表,如下所示:

如何爬取51job发布的工作职位

核心源码

1.获取数据

定义一个函数get_data,用于发起请求并获取数据,如下所示:

headers中的User-Agent主要用于模拟浏览器,不然会被反爬虫程序屏蔽,http状态码为418,意思是被网站的反爬程序返回的。

encoding是要爬取的网站的编码为gbk,如果不加,会产生乱码,默认为utf-8

def get_data(req_url):
  """获取数据"""
  headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko',
    'Accept-Language': 'zh-Hans-CN, zh-Hans;q=0.5'
  }
  resp = requests.get(req_url, headers=headers)
  resp.encoding = 'gbk' # 不加会产生中文乱码
  if resp.status_code == 200:
    return resp.text
  else:
    return None

网站标题:如何爬取51job发布的工作职位-创新互联
URL分享:http://cdweb.net/article/djseoh.html