• 用python爬了上千万条招聘信息后,最终分析出python要学这些才能就业...


    话说年末了,有工作的要考虑明年跳槽,没工作的要考虑明年找工作,那么都想好怎么搞了吗?

    在这里插入图片描述
    不知道怎么了解?没事,来,我们用python一键查看并分析!

    一、准备前戏

    1、使用的软件

    python 3.8
    pycharm 2021专业版 激活码

    2、使用的内置模块

    pprint >>> # 格式化输入模块
    csv >>> # 保存csv文件
    re >>> # re 正则表达式
    time >>> # 时间模块

    3、要安装的第三方模块

    requests >>> # 数据请求模块 

    win + R 输入cmd 输入安装命令 pip install 模块名 ,如果出现爆红, 可能是因为网络连接超时,切换国内镜像源即可。

    在这里插入图片描述

    二、思路流程

    爬虫就是模拟浏览器,对于服务器发送请求,得到它返回响应的数据。

    数据来源分析

    首先确定目标,分析数据内容,可以从什么地方获取。

    数据是通过哪个url地址发送什么请求方式,携带了那些请求头,然后得到数据(通过开发者工具进行抓包分析)

    我们分析数据,是分析服务器返回数据,而不是元素面板,elements 是元素面板,前端代码渲染之后的内容。
    在这里插入图片描述

    代码实现步骤

    1. 发送请求,对于我们刚刚分析的到url(数据包)地址发送请求,post请求,请求参数, header请求头;
    2. 获取数据,获取响应体的数据内容,服务器返回的数据;
    3. 解析数据,提取我们想要的内容,根据返回的数据,选择对应最适合的解析方式去提取数据;
    4. 保存数据,保存本地数据库/文本/表格数据;
    5. 多页爬取;
    # 我还给大家准备了这些资料,直接在群里就可以免费领取了。
    # 一群:872937351 (群满了的话加二群)
    # 二群:924040232
    # python学习路线汇总
    # 精品Python学习书籍100本
    # Python入门视频合集
    # Python实战案例
    # Python面试题
    # Python相关软件工具/pycharm永久激活

    三、代码部分

    兄弟们,最最最喜欢的环节到了,上代码。
    在这里插入图片描述

    import requests  # 数据请求模块 
    import pprint  # 格式化输入模块
    import csv   # 保存csv文件
    import time # 时间模块
    
    
    # 打开文件 等会进行保存 mode 是保存方式 a 追加写入
    f = open('拉勾.csv', mode='a', encoding='utf-8', newline='')
    csv_writer = csv.DictWriter(f, fieldnames=[
        '标题',
        '公司名字',
        '城市',
        '薪资',
        '经验',
        '学历',
        '详情页',
    ])
    csv_writer.writeheader()  # 写入表头
    for page in range(1, 11):
        # 1. 发送请求 字符串格式化输出 {}占位符
        print(f'===================正在爬取第{page}页的数据内容===================')
        time.sleep(2) # 延时2秒钟
        url = 'https://www.lagou.com/jobs/v2/positionAjax.json'  # 确定请求的url地址
        # headers 请求头  爬虫就是模拟浏览器 对于服务器发送请求, 得到他返回响应数据
        # headers 作用 伪装python代码的  把python代码伪装成浏览器 去发送请求  简单反爬一种手段
        # user-agent 用户代理 浏览器的身份标识
        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36'
        }
        # data 请求参数, post请求 需要传递一个from data表单数据
        # pycharm使用的小技巧一: 快速批量替换 选中 ctrl + R 输入正则表达式匹配规则
        # pycharm使用的小技巧二: 翻译插件 可以去安装
        data = {
            'first': 'true',
            'needAddtionalResult': 'false',
            'city': '全国',
            'px': 'new',
            'pn': page,
            'fromSearch': 'true',
            'kd': 'python',
        }
        # 通过requests这个模块里面post请求方法 对于url地址发送请求, 并且给传递一个data请求参数, headers 请求头, 最后response变量接收
        response = requests.post(url=url, data=data, headers=headers)
        # <Response [200]> 放回的结果 response 对象 200 状态码 表示请求成功
        # 2. 获取数据 response.json() 获取json字典数据 response.text 获取文本数据(字符串数据) response.content 二进制数据
        # print(response.text)
        # pprint.pprint(response.json())
        # 3. 解析数据 字典数据类型, 解析数据 提取内容 可以根据键值对取值  根据冒号左边的内容, 提取冒号右边的内容
        # 根据冒号左边的内容, 提取冒号右边的内容
        result = response.json()['content']['positionResult']['result']
        # pprint.pprint(result)
        for index in result:  # for循环 遍历 提取列表里面每一个元素
            title = index['positionName']  # 标题
            company_name = index['companyFullName']  # 公司名字
            city = index['city']  # 城市
            money = index['salary']  # 薪资
            workYear = index['workYear']  # 经验
            edu = index['education']  # 学历
            href = f'https://www.lagou.com/wn/jobs/{index["positionId"]}.html'
            # json.loads() 字符串数据转字典
            dit = {
                '标题': title,
                '公司名字': company_name,
                '城市': city,
                '薪资': money,
                '经验': workYear,
                '学历': edu,
                '详情页': href,
            }
            csv_writer.writerow(dit)
            print(dit)

    兄弟们觉得还行的话,记得三连哈~

     

     

  • 相关阅读:
    我已经迷失在事件环(eventloop)中了【Nodejs篇】
    canvas练手项目(二)——各种操作基础
    canvas练手项目(三)——Canvas中的Text文本
    canvas练手项目(一)——选取图片
    迭代器,生成器(generator)和Promise的“微妙”关系
    通过HTTP的HEADER完成各种骚操作
    这份Koa的简易Router手敲指南请收下
    KOA的简易模板引擎实现方式
    扒一扒PROMISE的原理,大家不要怕!
    参考KOA,5步手写一款粗糙的web框架
  • 原文地址:https://www.cnblogs.com/hahaa/p/15745641.html
Copyright © 2020-2023  润新知