使用ChatGPT代码解释器优化大众点评数据获取流程

释放双眼,带上耳机,听听看~!
本文介绍了如何利用ChatGPT代码解释器优化大众点评数据获取流程,自动化抓取数据并存储到MongoDB和Google Cloud Storage中。通过使用ChatGPT,可以简化数据抓取和存储的流程,提高效率。

前言

虽然我们的密室创业项目《封灵街》倒闭了,但是好歹我们也是大众点评上了4.8分的,所以想把之前的评论都下载下来,留作纪念,以防止哪天被大众点评删除掉了。

使用ChatGPT代码解释器优化大众点评数据获取流程

大众点评数据获取

232条数据说多不多,说少也不少,人工一条一条的下载是不现实的,也违背了我工程师的初衷。于是我打开了Charles设置了手机的代理,开始抓包。

1. 尝试APP抓包

无功而返,看来点评APP的网络请求为了反扒不是通过HTTP来发送的

使用ChatGPT代码解释器优化大众点评数据获取流程

2. 尝试小程序抓包

那就退而求其次,来看看小程序的请求能不能抓到,分享店铺小程序到文件传输助手,然后微信中打开该小程序

使用ChatGPT代码解释器优化大众点评数据获取流程

2.1. 获取URL,并尝试修改参数

使用ChatGPT代码解释器优化大众点评数据获取流程

哈哈,果然是明文传输,so easy。

接下来,把请求导出来,看看能不能通过修改参数,完成后续的批量请求。

使用ChatGPT代码解释器优化大众点评数据获取流程

粘贴到postman,并修改offset参数

使用ChatGPT代码解释器优化大众点评数据获取流程

返回结果报错了,说明参数做了签名

使用ChatGPT代码解释器优化大众点评数据获取流程

目前没有太好的办法了,我计算了一下,还好一页10跳数据,232条数据,24页就搞定了,我决定人工完成翻页,并通过Charles保存请求返回值。

2.2. 手动获取,并保存

还好,整个过程也就2分钟左右,然后选择所有的请求,并Save All,保存到一个文件夹中。

使用ChatGPT代码解释器优化大众点评数据获取流程

原始数据都保存下来了,接下来我想把这些数据保存到数据库,并把图片上传到OSS中,避免后续图片URL失效。这个时候我想到了刚刚可以使用的ChatGPT代码解释器,看看能不能让他帮我简化这个流程。

用ChatGPT代码解释器来处理保存好的数据

开启代码解释器

因为是刚刚接到可以开通代码解释器Code Interpreter的通知,需要先去设置里面把这个功能打开一下

使用ChatGPT代码解释器优化大众点评数据获取流程

之后再新建聊天的时候,就可以选择代码解释器了

使用ChatGPT代码解释器优化大众点评数据获取流程

让ChatGPT来帮我编程

使用ChatGPT代码解释器优化大众点评数据获取流程

当进入代码解释器的模型后,ChatGPT的输入框,左侧会多了一个“加号”,我们可以通过这个加号来上传文件。上传文件后,我给了他一个指令“获取文件中关键的json信息,并下载图片原图即big_url”。接下来,ChatGPT就开始自己的工作了,这个流程有点像比较火的AutoGPT,即AI自动进行一步一步的操作流,详细流程可以参见我的视频:

第一个 ChatGPT 代码解释器 demo,解析大众点评爬虫结果数据

最后,是我让ChatGPT基于以上的内容,生成的一个接写JSON文件并保存数据到MongoDB和Google Cloud Storage的教学文档:

前提条件

在开始之前,您需要安装以下Python库:

  1. pymongo:用于连接MongoDB数据库。
  2. requests:用于从网络上下载图片。
  3. google-cloud-storage:用于连接Google Cloud Storage并上传图片。

您可以使用以下命令来安装这些库:

pip install pymongo requests google-cloud-storage

此外,您还需要配置Google Cloud SDK的认证信息,这样才能使用Google Cloud Storage Python客户端库。有关如何设置GOOGLE_APPLICATION_CREDENTIALS环境变量的更多信息,请参阅Google Cloud SDK文档

实现步骤

以下是我们要生成的Python脚本的步骤:

  1. 连接到MongoDB数据库。
  2. 连接到Google Cloud Storage。
  3. 遍历包含JSON文件的目录。
  4. 对于每个JSON文件,加载JSON数据。
  5. 对于每条评论数据,检查是否有关联的图片。
  6. 如果有,下载这些图片,然后将它们上传到Google Cloud Storage。
  7. 将Google Cloud Storage返回的公共URL保存到reviewPics数组中的new_image_url字段。
  8. 将更新后的评论数据保存到MongoDB数据库。

Python脚本

以下是生成的Python脚本:

import os
import json
import requests
import pymongo
from pymongo import MongoClient
from google.cloud import storage

# Connect to your MongoDB instance
client = MongoClient('mongodb://localhost:27017/')
db = client['your_db_name']  # Replace with your database name
collection = db['your_collection_name']  # Replace with your collection name

# Specify the root directory for storing images
img_root_dir = "/path/to/your/image/directory"  # Replace with your directory path

# Specify the directory containing the JSON files
json_dir = "/path/to/your/json/directory"  # Replace with your directory path

# Initialize a Google Cloud Storage client
gcs_client = storage.Client()

# Specify your bucket name
bucket_name = 'your_bucket_name'  # Replace with your bucket name
bucket = gcs_client.get_bucket(bucket_name)

# Loop over every JSON file in the directory
for filename in os.listdir(json_dir):
    if filename.endswith('.json'):
        print(f"Processing file: {filename}")
        # Load the JSON file
        with open(os.path.join(json_dir, filename), 'r') as file:
            data = json.load(file)

        for review in data['reviewInfo']['reviewListInfo']['reviewList']:
            if 'reviewPics' in review:
                for pic in review['reviewPics']:
                    if 'bigurl' in pic:
                        # Create a directory for the review if it doesn't exist
                        review_dir = os.path.join(img_root_dir, str(review['reviewId']))
                        os.makedirs(review_dir, exist_ok=True)

                        # Extract the original filename from the URL
                        filename = os.path.basename(pic['bigurl'].split("?")[0])

                        # Download the image
                        response = requests.get(pic['bigurl'])
                        img_path = os.path.join(review_dir, filename)

                        with open(img_path, 'wb') as f:
                            f.write(response.content)
                        print(f"Saved image: {img_path}")

                        # Upload the image to Google Cloud Storage
                        blob = bucket.blob(filename)
                        blob.upload_from_filename(img_path)
                        print(f"Uploaded image: {blob.public_url}")

                        # Update the bigurl field in the reviewPics array
                        pic['bigurl'] = blob.public_url

                        # Update the MongoDB record with the new review data
                collection.update_one({'reviewId': review['reviewId']}, {"$set": review}, upsert=True)
                print(f"Updated MongoDB record with new review data for reviewId: {review['reviewId']}")

print("Completed processing all files.")

请注意,您需要替换 ‘your_db_name’‘your_collection_name’“/path/to/your/image/directory”“/path/to/your/json/directory”‘your_bucket_name’ 为您实际的值。

结果验收

图片上传Google Cloud Storage

使用ChatGPT代码解释器优化大众点评数据获取流程

数据上传 Mongodb Atlas

使用ChatGPT代码解释器优化大众点评数据获取流程

这就是我们如何使用ChatGPT Code Interpreter来生成Python脚本,帮助我们完成数据的提取、保存和上传的过程。希望这个教程对您有所帮助!

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

基于深度学习的高精度刀具检测识别系统

2023-12-21 14:29:14

AI教程

ChatGPT与AIGC:人工智能生成内容的商业应用

2023-12-21 14:39:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索