#python学习笔记#使用python爬取拉勾网职位信息(二):爬取数据

将python环境配置好后,接下来就可以开始动手coding了!

1.创建excel并插入头部数据:

这里的30是总页数,可以从网页中获得,这里为了简便,就暂时写了一个固定值。


2.获取网页数据

获取网页数据需要用到python自带的urllib(type为分类,如:Android,iOS等;index为页数),然后我们可以把获得的data,转成soup用于解析:


可以通过print(data),查看获取到的结果。

3.解析网页数据

通过打印出来的数据可以发现,每个class为“con_list_item default_list”的<li>标签都对应一条职位信息,其中的data-company(公司名称),data-positionname(职位名称),data-salary(薪资)等几个属性正是我们需要的,因此我们需要通过soup去取得这个标签,拿到这些值:

通过soup的find_all方法可以找到整个网页中所有的class为“con_list_item default_list”的<li>标签,然后遍历每个<li>标签取得对应的职位属性,赋值到对应的行,这里我把属性值又赋给了一个叫做RecruitInfo的对象,主要是为了练习一下在python中创建类,只是实现功能的话,也可以直接赋值。sheet.write_merge就是将数值以对应的style写入到对应行、对应列中。

工作年限这个属性由于没有类似class的标识符,因此我是通过截取字符串拿的:

好了,到这里整个爬虫就好了。运行一下应该就可以看到效果了!通过标签获取网页上的数据是爬虫的一种方式,还可以通过json去获取,那就需要一些网络方面的知识了,如抓包等等,有空再来研究一下。

PS:写到这里,鄙人刚想运行一下截个图,就发现拉勾所有的页面,请求下来都变成了这个样子。。。

真的是欲哭无泪啊!!!


7.10更新:

终于找到了上面问题的原因!原来是网站拒绝了此类访问(我在抓智联数据的时候,它提醒我错误502,我才想起是这个原因,拉钩对502这个错误做了处理,真的很心机啊!),ok既然找到了问题,接下来解决就好,我发现在浏览器上依然是可以通过网址打开网页的,因此想通过python获取网页数据,就必须通过设置headers来伪装成浏览器就好了:


抓到的部分数据如下:


Demo下载链接:点我下载(审核通过后更新)



猜你喜欢

转载自blog.csdn.net/superyu1992/article/details/73838755