python爬取叮咚买菜评价数据

简介: python爬取叮咚买菜评价数据

疫情这这几年,线上买菜成了大家日常生活的一部分,出现了叮咚买菜,京东到家,朴朴超市等app,这些买菜app我们可以买到新鲜蔬菜、水果、肉禽蛋、米面粮油、水产海鲜、南北干货、方便速食等等。对上班族来说真的是很方便的软件。
有竞争就有对比,消费者会通过平台直接的各方面进行对比选择更有利的一款app。最近不少川渝地区的叮咚买菜用户表示“叮咚买菜真的要撤出川渝地区了吗”“叮咚买菜要溜了?五折快冲”“传叮咚买菜川渝区域大撤退,29号关闭”,在正式发布通知之前,叮咚买菜撤出川渝的消息就已四散。撤离的消息来得突然,却也可以预料,毕竟当下叮咚买菜的境况并不乐观
QQ图片20230522152151.png
那么我们今天就利用python爬虫技术去了解下大家对这款购菜app的评价吧。数据来源于叮咚买菜app,但是就像美团评价一样,这个网站评论数据的获取也是稍微有点难度的,最直接的就是会遇到网站封IP行为,这样的前提下我们只有先准备好高质量的爬虫代理才能去获取数据了。这里我们使用python通过Keep-Alive保持IP不变,向多个页面发出请求,通过多线程实现并发控制。IP的使用由亿牛云提供的爬虫隧道加强版产品。爬虫数据实现的过程如下所示例:
```#! -- encoding:utf-8 --
import requests
import random
import requests.adapters
import threading # 导入threading模块
import time # 导入time模块

要访问的目标页面

targetUrlList = [
"https://httpbin.org/ip",
"https://httpbin.org/headers",
"https://httpbin.org/user-agent",
]

代理服务器(产品官网 www.16yun.cn)

proxyHost = "t.16yun.cn"
proxyPort = "31111"

代理验证信息

proxyUser = "SWRSED"
proxyPass = "458796"
proxyMeta = f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}"

设置 http和https访问都是用HTTP代理

proxies = {
"http": proxyMeta,
"https": proxyMeta,
}

定义一个全局变量,用于记录上一次请求的时间

last_request_time = 0

定义一个全局变量,用于创建一个线程锁

lock = threading.Lock()

定义一个函数,用于访问一个目标网址

def visit_url(url, i):
global last_request_time # 声明全局变量
with requests.session() as s: # 使用with语句管理会话
with lock: # 使用线程锁

        # 获取当前时间
        current_time = time.time()
        # 计算距离上一次请求的时间差
        delta_time = current_time - last_request_time
        # 如果时间差小于200毫秒,就等待一段时间
        if delta_time < 0.2:
            time.sleep(0.2 - delta_time)
        # 更新上一次请求的时间
        last_request_time = time.time()
    # 发送请求
    r = s.get(url, proxies=proxies)
    print(f"第{i+1}个网址,结果如下:") # 使用f-string格式化输出
    print(r.text)

创建一个空的线程列表

threads = []
for i, url in enumerate(targetUrlList): # 使用enumerate函数遍历列表

# 创建一个线程,传入目标网址和索引
t = threading.Thread(target=visit_url, args=(url, i))
# 将线程添加到线程列表
threads.append(t)
# 启动线程
t.start()

等待所有线程结束

for t in threads:
t.join()
```

相关文章
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
106 10
|
3月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能数据隐私保护
使用Python实现深度学习模型:智能数据隐私保护 【10月更文挑战第3天】
204 0
|
10天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
1月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
2月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
64 3
|
3月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
2月前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
38 1
|
3月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
155 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
3月前
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
56 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
|
2月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。