第一次爬数据这么多的网站,有点小激动╰(*°▽°*)╯╰(*°▽°*)╯
进入前程无忧网,在首页的搜索框中,输入大概的职位或公司名称,就能查看需要的职位和公司,但,如果你的搜索输入为空时,它就会查出那个地区的所有记录。如图
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源代码: