重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
网站设计制作、成都网站设计,成都做网站公司-创新互联已向上1000家企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。小编给大家分享一下如何爬取51job发布的工作职位,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
概述
不知从何时起,Python和爬虫就如初恋一般,情不知所起,一往而深,相信很多朋友学习Python,都是从爬虫开始,其实究其原因,不外两方面:其一Python对爬虫的支持度比较好,类库众多。其二Pyhton的语法简单,入门容易。所以两者形影相随,不离不弃,本文主要以一个简单的小例子,简述Python在爬虫方面的简单应用,仅供学习分享使用,如有不足之处,还请指正。
涉及知识点
本例主要爬取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