爬虫入门--爬取就业网站上的岗位信息构造数据集

爬虫入门--爬取就业网站上的岗位信息、解析爬取的数据构造数据集

爬虫入门实践

大家好!随着大数据分析逐渐火热的今天,爬虫技能也成了数据分析师一项不可或缺的技能, 要做好数据分析,爬虫构造出高质量的数据集是前提。那么谈到爬虫,很多同学可能都觉得很复杂,一头雾水,不知从何学起,这里呢就教大家如何从一个简单等实践了解爬虫的基本概念,以及实现一个简单的爬虫并构造出数据集的过程。

爬虫的基本概念

爬虫,就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。
顾名思义,爬虫的技术实现需要做的就是模拟人去请求网页并得到访问结果的过程。我们可以拆解一下用户去访问浏览器的过程:
(1)第一,我们要有一个电脑机器。
在爬虫技术实现上这一点就要求有一个入网的ip地址。
(2)第二,用户要打开浏览器进行访问。
这里不得不提到一个概念就是UA(User Agent,用户代理的简写,一般用来区分不同的浏览器。)例如用户使用chrome访问了一个网页,那么chrome向对方发送请求的时候,就会带上UA信息,在对方服务接收到请求的时候,会根据UA信息识别出是哪种浏览器发出的请求,并返回适配这种浏览器解析展示的返回内容,浏览器最终拿到请求结果后,可以按照自身网页解析方式,将内容解析展示到网页上,也就是用户最终看到的结果,每种不同的浏览器都有自己的UA,例如可以很方便的查到,mac电脑chrome96.0版本的UA信息如下:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36

(3)第三,要输入一串网页地址。
这个网页地址在爬虫技术中即是我们要爬取的网站的地址。
(4)用户最终能在网页上看到请求的结果网页。
在第(2)点我们提到了用户访问网页可以看到经过浏览器解析排版后的结果,而爬虫是通过程序模拟这个过程的,程序请求对方网站得到的是未经解析的html源码,因此需要根据用户需求解析出我们需要的数据字段,存储下来,得到数据集。

爬虫的技术实现

根据上述爬虫技术要素整理,可以很方便的实现出基本请求对方服务的代码,以python语言为例:
首先要引入网页请求需要的包:

import requests

然后模拟浏览器,为请求构造headers,添加UA信息:

headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' }

爬虫还需要对方请求的地址:

url = 'http://jy.zjiet.edu.cn/job/view/id/1177411'

利用请求包中的方法,请求该地址,得到请求结果:

res = requests.get(url, headers =headers)
print res

打印出的部分请求结果如下:

在这里插入图片描述
我们可以看到,请求结果实际是html源码,而我们需要的数据字段是藏在了html源码中,例如我们想要得到页面上的薪水字段(图中的2500-3499):
在这里插入图片描述
可以找到,该字段在html源码中实际对应的是由class为text-orange salary的薪水span标签包裹着的:
在这里插入图片描述
因此我们可以通过一些html源码解析工具,来解析处对应的字段,例如这里小编才用了python的html源码解析包BeautifuleSoup,解出薪水字段的方法如下:

soup=BeautifulSoup(res.text,"html.parser")
salary = soup.findAll(name="span", attrs={"class" :"text-orange salary"})[0].next_element
print('薪资:%s'%(salary))

除此之外,我们还可以按照类似的方法将职位、公司、地区、工作类型、学历要求等众多信息解析出来,这也就得到了我们的一条数据:
在这里插入图片描述
那么问题又来了,爬虫想要构造的是一个包含众多数据的数据集,因此对于岗位信息,我们至少要爬取多个链接才能得到一个可称作数据集的数据,对此我们可以构造一个url请求池,然后循环这个请求池中的url,依次调用爬取结果,并将结果逐条保存下来,整个过程的流程图如下:
在这里插入图片描述
根据这个过程,最终我们得到了就业网站岗位信息的数据集:
在这里插入图片描述
本篇文章,我们通过一个简单的实践,教大家利用python实践爬虫的过程,并解析结果构造出数据集。那么在实际应用中的场景,有时是多变的,例如爬出来的数据可能不是那么规整,有脏数据,异常值等,对此我们需要对数据进一步对清洗和规范化,以得到高质量的有利于分析对数据。在以后的篇章中,我会一一为大家讲解实践。
下一章,我会教大家利用python可视化分析工具,将本节爬取的数据进行简单的可视化,已得到数据的一些直观展示的指标,敬请期待!

如果您对博客内容的源码感兴趣,或者希望持续获得后续关于大数据分析的系列干货知识,可微信搜索“数据分析师进阶”或扫描以下二维码关注即可,公众号私信即可获取源码信息。
一起和我学习大数据分析知识吧

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍一下如何使用 Python 爬虫爬取房产数据并保存到本地。 首先,您需要选择一个合适的网站来进行爬取。例如,可以选择链家网、安居客等房产网站。然后,您需要分析该网站的页面结构和数据请求方式,确定需要爬取哪些数据,以及如何获取这些数据。 接着,您可以使用 Python 的 requests 库来发送 HTTP 请求,获取网页内容。然后,可以使用 BeautifulSoup 库来解析网页内容,提取需要的数据。 最后,您可以使用 Python 的 Pandas 库将数据保存到本地的 Excel 或 CSV 文件中。以下是一个示例代码: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 发送 HTTP 请求获取网页内容 url = 'https://bj.lianjia.com/ershoufang/' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.content, 'html.parser') # 解析网页内容,提取需要的数据 house_list = soup.find_all('div', {'class': 'info'}) data = [] for house in house_list: name = house.find('div', {'class': 'title'}).text.strip() price = house.find('div', {'class': 'price'}).text.strip() area = house.find('div', {'class': 'houseInfo'}).text.strip() data.append([name, price, area]) # 将数据保存到本地文件 df = pd.DataFrame(data, columns=['名称', '价格', '面积']) df.to_excel('house_data.xlsx', index=False) ``` 这是一个简单的示例代码,您可以根据您需要爬取数据网站的不同来进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值