请选择 进入手机版 | 继续访问电脑版

苏苏网赚论坛

 找回密码
 立即注册
查看: 732|回复: 0

python爬取智联招聘职位信息(单进程)

[复制链接]
发表于 2019-6-27 13:48:31 | 显示全部楼层 |阅读模式
我们先通过百度搜索智联招聘,进入智联招聘官网,一看,傻眼了,需要登录才能查看招聘信息



没办法,用账号登录进去,登录后的网页如下:



输入职位名称点击搜索,显示如下网页:



把这个URL:https://sou.zhaopin.com/?jl=765&kw=软件测试&kt=3   拷贝下来,退出登录,再在浏览器地址栏输入复制下来的URL



哈哈,居然不用登录,也可以显示搜索的职位信息。好了,到这一步,目的达成。

接下来,我们来分析下页面,打开浏览器的开发者工具,选择Network,查看XHR,重新刷新一次页面,可以看到有多个异步加载信息



查看每个请求的返回消息,我们可以找到其中有个请求已JSON方式返回了符合要求的总职位数以及职位链接等信息

点击Headers,查看这个请求的URL:



我们把Request URL复制到浏览器中打开,没错就是我们需要的信息:



分析这个URL:https://fe-api.zhaopin.com/c/i/sou?pageSize=60&cityId=765&workExperience=-1&education=-1&companyType=-1&employmentType=-1&jobWelfareTag=-1&kw=软件测试&kt=3

我们可以知道:

1、pageSize:每页开始的值,第一页是0,第二是60,第三页是120,以此类推

2、cityId:是城市编码,直接输入城市名,也是可以的,比如:深圳

3、kw:搜索时输入的关键词,也就是职位名称

其他的字段都可以不变。

分析完了之后,我们可以开始写代码了:

我们先定义一个日志模块,保存爬虫过程中的日志:

log.py

用一个简单的方法来实现增量爬取,把爬取的URL以hashlib加密,加密后返回32个字符,为了节省内存,只取中间的16个字符,这样也可以保证每个不同的URL有不同的加密字符,把爬取的URL加密字符保存到集合中,在爬取完成后,序列化保存到本地磁盘,下次再次爬取时,反序列化保存的URL到内存,对于已经爬取的URL不再爬取,这样就实现了增量爬取。

URL加密:

hash_url

序列化:

save_progress

反序列化:

load_progress

获取符合要求的职位总页数:从JSON消息中获取numFound字段,这个是总条数,再除以60,向上取整,返回的就是总页数

get_page_nums

获取每页的职位连接:JSON消息中的positionURL就是职位链接,在这里我们顺便获取职位的创建时间,更新时间,截止时间以及职位福利,以字典返回

get_urls

在浏览器中输入一个职位链接,查看页面信息



在这里我们以lxml来解析页面,解析结果以字典保存到生成器中

get_job_info

输出到CSV

csv

最后就是主函数了:

main

打印爬虫耗时总时间:



city_names = ['深圳','广州']
job_names = ['软件测试','数据分析']
output_path = 'output'

if __name__=='__main__':
    start_time = datetime.datetime.now()
    logger.info('*'*20+"start running spider!"+'*'*20)
    main()
    end_time = datetime.datetime.now()
    logger.info('*'*20+"spider finished!Running time:%s"%(start_time-end_time) + '*'*20)
    print("Running time:%s"%(start_time-end_time))



以上代码已全部上传到github中,地址:https://github.com/Python3SpiderOrg/zhilianzhaopin

在爬取智联招聘信息得过程中为了防止反爬虫机制得开启,爬虫工作者一般都会选择代理IP进行配合,代理IP一般
都具有高度保密得性质,稳定,速度。河马代理IP,有效得保障客户得上网隐私和安全,扣扣337============2==========92===========404
回复

使用道具 举报

广告合作|最大的网赚客中文交流社区!十年老站!

GMT+8, 2024-3-29 07:34 , Processed in 0.140400 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.1 VIP版

© 2012-2022 苏苏网赚论坛 版权所有 | 10年老品牌

快速回复 返回顶部 返回列表