python 免登录爬取 拉勾网职位信息

需要安装的库requestspandas
2019年8月12日测试可用,下面是源码,复制粘贴即可用

import requests,pandas


def parse_page(keyword,pn):
    url = "https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false"
    headers={
        "Referer":"https://www.lagou.com/jobs/list_?labelWords=&fromSearch=true&suginput=",     #搜索页默认的 Referer
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",
    }
    data = {
        "first":"true",
        "pn":"%d"%pn,
        "kd":"%s"%keyword
    }
    session = requests.session()
    session.get(headers["Referer"],headers=headers)     # 发起一次搜索请求来保存cookie
    return session.post(url,headers=headers,data=data).json()


def parse_infos(infos):
    all_jobs=infos['content']['positionResult']['result']      # 定位到所有职位信息
    jobs=[]
    for job in all_jobs:
        jobs.append([
            job["companyFullName"],
            job["companyShortName"],
            job["companySize"],
            job["financeStage"],
            job["district"],
            job["positionName"],
            job["workYear"],
            job["education"],
            job["salary"],
            job['jobNature'],
            job['positionAdvantage'],
            job['industryField'],
            "http://www.lagou.com/jobs/%s.html"%job['positionId']
        ])
    return jobs


def main():
    keyword = input('请输入查询岗位:')
    infos = parse_page(keyword,1)
    count=int(infos['content']['positionResult']['totalCount'])   #总搜索结果
    page_sum=(count-1)//15+1
    print("共查询到 %d 条与\"%s\"相关的岗位信息,一共 %d 页"%(count,keyword,page_sum))
    all_infos=[]
    for i in range(1,page_sum+1):
        infos = parse_page(keyword,i)
        print("开始解析第 %d 页"%i)
        all_infos+=parse_infos(infos)
    print("数据获取完成,开始写入数据")
    data=pandas.DataFrame(data=all_infos,columns=['公司全名', '公司简称', '公司规模', '融资阶段', '区域', '职位名称', '工作经验', '学历要求', '月薪', '工作性质','职位福利','行业','链接'])
    data.to_csv("lagoudata.csv",encoding='utf-8-sig')
    print("已导入到 lagoudata.csv !")

if __name__ =="__main__":
    main()

运行欧克图:
在这里插入图片描述
再看一眼获取到的数据:【防止违规发帖,已经打码】
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值