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

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

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_51job

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_分布式_02

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_分布式_03

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

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_python_04

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_分布式_05

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

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_python_06

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_51job_07

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

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_爬虫_08

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_requests_09

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

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

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

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_51job_10

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

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_爬虫_11

python爬去前程无忧招聘信息有手机号或者邮箱的 爬取前程无忧数据_分布式_12

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

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