• 一个简单的网站爬虫教程,让你了解爬虫的步骤,爬虫网页数据采集


    前言

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

    项目目标

    采集APP推广数据

    受害者地址

    https://www.cpajia.com/

     

    环境

    • Python3.6
    • pycharm
    • requests
    • time
    • csv

    相关库用 pip install 安装即可

     

    获取数据内容

     


    cap之家数据是动态数据加载的~ 开发者工具可以找到相对应的数据接口

     


    请求数据是POST

     


    数据内容找到了,单页数据可以直接爬取,如果想要爬取多页数据,那就要分析接口数据url的变化

    因为数据接口是post请求,所以一般情况都是data参数的变化,所以查看data参数的变化就可以了~

    • 第一页接口数据data参数

     

     


    两个接口都是一样的数据,但是data参数不一样,第二个就是感觉data参数就是对应的页数号,所以可以多看几页的data参数的变化

    • 第二页接口数据data参数

     

    • 第三页接口数据data参数

     


    这一下就很清楚的看到data参数的变化了~Pagelndex是等差数列 刚好对应的页数

    所以再翻页爬取的时候只要改变Pagelndex参数就可以了

    爬虫代码

    导入相关工具

    import requests
    import time
    import csv

    请求网页

    url = 'https://www.cpajia.com/index.php?m=index&a=search'
    data = {
        'PageIndex': '{}'.format(page)
    }
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
    }
    response = requests.post(url=url, data=data, headers=headers)

    解析网页数据

        dit = {}
        for i in lis:
            dit['名称'] = i['title']
            data_time = int(i['updatetime'])
            timeArray = time.localtime(data_time)
            otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
            dit['发布时间'] = otherStyleTime
            dit['单价/元'] = i['price']
            dit['结算方式'] = i['balance']
            dit['数据查看'] = i['dataview']
            dit['电话'] = i['phone']
            dit['微信'] = i['wxh']
            dit['QQ'] = i['qq']
            dit['产品要求'] = i['content']

    保存数据

    f = open('APP推广数据.csv', mode='a', encoding='utf-8', newline='')
    csv_writer = csv.DictWriter(f, fieldnames=['名称', '发布时间', '单价/元', '结算方式', '数据查看', '电话', '微信', 'QQ', '产品要求'])
    csv_writer.writeheader()

    运行代码,效果如下图

     

  • 相关阅读:
    6 款好用到爆的 JSON 处理工具,极大提高效率!
    task最佳实践
    Mac系统维护工具System Toolkit激活版
    多引擎数据库管理JetBrains DataGrip 2022激活版
    centos7使用iptables
    gitlab创建账号密码
    gitlab为项目添加新成员
    gitlab推送代码报错remote: GitLab: You are not allowed to push code to protected branches on this project.
    IDEA正版激活/永久激活
    mongdb学习
  • 原文地址:https://www.cnblogs.com/hhh188764/p/13840549.html
Copyright © 2020-2023  润新知