前程无忧招聘网站(51job)——数据爬取

本文介绍了一种通过解析HTML标签属性,获取全国各城市招聘信息的方法。作者发现每座城市在URL中都有特定的数字组合,通过遍历所有城市,实现对全国招聘信息的完整爬取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次爬数据这么多的网站,有点小激动╰(*°▽°*)╯╰(*°▽°*)╯

  1. 进入前程无忧网,在首页的搜索框中,输入大概的职位或公司名称,就能查看需要的职位和公司,但,如果你的搜索输入为空时,它就会查出那个地区的所有记录。如图

  2.这时,我们似乎就拿到了全国的所有数据,但是只有2千页,感觉数据不对头,然后我又去看了看广东省的数据,如图:
 

 (╯>д<)╯⁽˙³˙⁾广东省都有2千页,全国怎么也才两千页,ORZ,然后我又去百度了一下,发现网上许多人都只是把这个全国的两千页数据给爬了下来,就没了。
        3.但我想要完整的数据,所以就只有去按照城市和省份一个一个的爬取,然后发现在URL上每个地区 都有其对应的数字组合。如图:

4.广东省对应的是030000,江苏省对应的是070000,然后每一页的数据增长也在URL看出了规律,如图:

        5.在每增长一页时,URL的那个地方就会加 1,这样的话我们只要找出所有城市省份地区对应的数字组合,再按照这个页数增长就能获取所有数据。

        6.但就是这个,找出所有城市省份地区对应的数字组合有点恼火,因为按照笨方法就是去把每一个地区城市都打开一遍,然后把对应的数字组合复制下来,那样虽说也行,但估计我人都要累死,这样就真的成"码农"了。我才不要╭(╯^╰)╮╭(╯^╰)╮

        7.所以我就把他的城市选择列表打开,发现他把每次城市对应的数字组合保存在HTML标签属性中的。如图:

        8.这样的话,就可以遍历出它所有的<td>标签,然后取出里面的数字组合和城市名字就行了,因为它是要每次点击一个地区分类,才能打开一个地区的城市列表,所以就不能用"传统的爬虫"的方式去爬取了。    
        9.我是把每个城市列表都打开一遍,这样它就在HTML中加载出了所有的城市列表,然后我就在控制台中,创建一个空数组,获取父节点,然后遍历子节点的<td>,然后把每一个td的数字组合和城市名称组合为一个对象添加进空数组里面,这样我就得到了所有城市对应的数字组合。如图:

 10.然后在爬取时就按照这个对应关系来就行了。我开了 10 个线程,爬了大概4个小时左右,下面是我的Python源代码:

GitHub地址:https://github.com/potatopeople/recruit

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值