热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python爬虫——爬取taptap游戏的评论信息(通过fiddler抓包)

1.效果图,只抓取了评论人名字,游戏时长和评论内容,另外因为随机延迟,爬取的速度不是很快,有需要的爬友们可以写个多线程进行爬取2.通过抓包,分析之后我们可以找到评论区所在的url,

1. 效果图,只抓取了评论人名字,游戏时长和评论内容,另外因为随机延迟,爬取的速度不是很快,有需要的爬友们可以写个多线程进行爬取

python爬虫——爬取taptap游戏的评论信息(通过fiddler抓包)

2. 通过抓包,分析之后我们可以找到评论区所在的url,对比之后我们可以发现该条url就是我们需要的url

python爬虫——爬取taptap游戏的评论信息(通过fiddler抓包)

3. 通过对比多条url,发现其中的规律,就是from递增10

python爬虫——爬取taptap游戏的评论信息(通过fiddler抓包)

4. 再分析返回的数据是json格式,通过对字典那样的操作,可以直接获取到我们需要的信息

python爬虫——爬取taptap游戏的评论信息(通过fiddler抓包)

5. 通过datas= resp.get(‘data’).get(‘list’)的datas是否为空来判断是否到底了,到底了咱们就break退出循环

resp = requests.get(url, headers=headers).json()
datas= resp.get('data').get('list')
if datas:
    for data in datas:
        # 评论人
        name = data.get('author').get('name')
        # 游戏时长
        played_tips = data.get('played_tips')
        # 评论内容
        cOntents= data.get('contents').get('text')

        # 声明一个字典储存数据
        data_dict = {}
        data_dict['name'] = name
        data_dict['played_tips'] = played_tips
        data_dict['contents'] = contents.replace('
', '') data_list.append(data_dict) print(data_dict) else: break

6. 通过page自增10来达到翻页的效果,通过random随机函数来实现随机延迟

python爬虫——爬取taptap游戏的评论信息(通过fiddler抓包)

7. 完整代码附上

import requests
import json
import csv
import time
import random


headers = {
    'Host': 'api.taptapdada.com',
    'Connection': 'Keep-Alive',
    'Accept-Encoding': 'gzip',
    'User-Agent': 'okhttp/3.10.0'

}

# 声明一个列表存储字典
data_list = []


def start_spider():
    page = 0
    while True:
        time.sleep(round(random.uniform(0.5, 1.5), 1))
        url = 'https://api.taptapdada.com/review/v1/by-app?limit=10&app_id=142793' \
              '&X-UA=V%3D1%26PN%3DTapTap%26VN_CODE%3D551%26LOC%3DCN%26LANG%3Dzh_CN%26CH%3Dtencent%26' \
              'UID%3Dda4b99bf-5e2b-4204-a92f-235474b32c4c&from={}'.format(page)
        page += 10
        resp = requests.get(url, headers=headers).json()
        datas = resp.get('data').get('list')
        if datas:
            for data in datas:
                # 评论人
                name = data.get('author').get('name')
                # 游戏时长
                played_tips = data.get('played_tips')
                # 评论内容
                cOntents= data.get('contents').get('text')

                # 声明一个字典储存数据
                data_dict = {}
                data_dict['name'] = name
                data_dict['played_tips'] = played_tips
                data_dict['contents'] = contents.replace('
', '') data_list.append(data_dict) print(data_dict) else: break def main(): start_spider() # 将数据写入json文件 with open('data_json.json', 'a+', encoding='utf-8-sig') as f: json.dump(data_list, f, ensure_ascii=False, indent=4) print('json文件写入完成') # 将数据写入csv文件 with open('data_csv.csv', 'w', encoding='utf-8-sig', newline='') as f: # 表头 title = data_list[0].keys() # 创建writer writer = csv.DictWriter(f, title) # 写入表头 writer.writeheader() # 批量写入数据 writer.writerows(data_list) print('csv文件写入完成') if __name__ == '__main__': main()

推荐阅读
  • 择要:Fundebug的JavaScript毛病监控插件同步支撑Vue.js异步毛病监控。Vue.js从降生至今已5年,尤大在本年2月份宣布了严重更新,即Vue2.6。更新包含新增 ... [详细]
  • 基于Python的微信智能自动回复系统构建
    本文详细介绍如何通过Python编程语言,结合itchat库及青云客智能语音API,构建一个能够自动响应用户消息的微信聊天机器人。主要内容包括环境配置、API对接以及代码实现。 ... [详细]
  • Python闭包深度解析与应用实例
    本文详细介绍了Python闭包的基本概念、必要条件及其实现方式,并通过具体示例说明闭包在提高代码复用性和维护性方面的作用。文章最后还探讨了闭包的内部机制及其在实际项目中的应用。 ... [详细]
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
  • 提升接口测试效率的关键:用例与工具的综合应用
    本文将探讨如何通过有效的接口测试用例设计和工具选择,显著提高接口测试的效率和质量。 ... [详细]
  • C#爬虫Fiddler插件开发自动生成代码
    哈喽^_^一般我们在编写网页爬虫的时候经常会使用到Fiddler这个工具来分析http包,而且通常并不是分析一个包就够了的,所以为了把更多的时间放在分析http包上,自动化生成 ... [详细]
  • 在现代移动应用开发中,尤其是iOS应用,处理来自服务器的JSON数据是一项基本技能。无论是使用Swift还是PHP,有效地解析和利用JSON数据对于提升用户体验至关重要。本文将探讨如何在Swift中优雅地处理JSON,以及PHP中处理JSON的一些技巧。 ... [详细]
  • 关于python中的字符串,python里面字符串 ... [详细]
  • Python中调用Java代码的方法与实践
    本文探讨了如何在Python环境中集成并调用Java代码,通过具体的步骤和示例展示了这一过程的技术细节。适合对跨语言编程感兴趣的开发者阅读。 ... [详细]
  • Pandas批量字符替换技巧详解
    本文深入探讨了在Pandas库中执行批量字符替换的多种策略,通过实例代码展示了每种方法的具体应用,旨在为数据处理提供实用指导。 ... [详细]
  • 微信小程序支付官方参数小程序中代码后端发起支付代码支付回调官方参数文档地址:https:developers.weixin.qq.comminiprogramdeva ... [详细]
  • 本文档详细介绍了如何在 Python 中进行文件和目录的基本操作,包括文件的打开、关闭、读取、写入、复制以及文件和目录的创建、删除和重命名等。 ... [详细]
  • Activity跳转动画 无缝衔接
    Activity跳转动画 无缝衔接 ... [详细]
  • 本文探讨了Web API 2中特性的路由机制,特别是如何利用它来构建RESTful风格的URI。文章不仅介绍了基本的特性路由使用方法,还详细说明了如何通过特性路由进行API版本控制、HTTP方法的指定、路由前缀的应用以及路由约束的设置。 ... [详细]
  • electronvue使用electronupdater实现自动更新
    今天呢,给大家带来一篇干货满满的electron-vue自动升级的教程,话不多说,开始我的表演!配置文件package.jsonbu ... [详细]
author-avatar
蟹子萝卜控
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有