python多线程爬取汽车数据

简介: python如何使用多线获取网站数据

最近两天,关于湖北购车最高补贴9万元超级大促销席卷朋友圈和社交平台,很多的消费者参加了这个大促销活动,很多4S店表示目前已经无法接单,连展车都卖掉了。

这一波由地方与车企一起策划的降价“大降价”呈现蔓延趋势。一场从新能源汽车开启,席卷燃油车的“降价潮”正在迅速袭来。多地发布政策礼包,意在精准拉动汽车消费,各个车企也开始降价,进入抢夺消费者的浪潮里。

这里我们可以通过python爬取汽车之家提供的数据,中国汽车销量,汽车销量查询,通过近几年汽车的销量数据来说明为什么今年汽车市场会出现大规模的降价。

本篇重点介绍下python爬虫部分的内容。项目实行步骤为:

1、确定需要爬取的界面

QQ图片20230309151337.png

2、根据页面能提供的内容确定爬取数据需求,中国汽车分厂商每月销售量

4、根据数据前端结构,确定需求,编写爬虫代码,经过简单的分析,网站有反爬机制

,所以这里我们可以通过python多线程采集网站,通过随机数控制保持多个页面使用相同代理IP去获取数据。

#! -*- encoding:utf-8 -*-
import requests
import random
import requests.adapters
import threading # 导入threading模块
# 要访问的目标页面
targetUrlList = [
    "https://https://www.autohome.com.cn/",
    "https://httpbin.org/headers",
    "https://httpbin.org/user-agent",
]
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "16DUXINQ"
proxyPass = "235487"
proxyMeta = f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}"
# 设置 http和https访问都是用HTTP代理
proxies = {
    "http": proxyMeta,
    "https": proxyMeta,
}
# 设置IP切换头
tunnel = random.randint(1, 10000)
headers = {"Proxy-Tunnel": str(tunnel)}
class HTTPAdapter(requests.adapters.HTTPAdapter):
    def proxy_headers(self, proxy):
        headers = super(HTTPAdapter, self).proxy_headers(proxy)
        if hasattr(self, 'tunnel'):
            headers['Proxy-Tunnel'] = self.tunnel
        return headers
# 定义一个函数,用于访问一个目标网址
def visit_url(url, i, j):
    with requests.session() as s: # 使用with语句管理会话
        a = HTTPAdapter()
        # 设置IP切换头
        a.tunnel = tunnel
        s.mount('https://', a)
        r = s.get(url, proxies=proxies)
        print(f"第{i+1}次访问,第{j+1}个网址,结果如下:") # 使用f-string格式化输出
        print(r.text)
# 访问三次网站,使用相同的tunnel标志,均能够保持相同的外网IP
for i in range(3):
    # 创建一个空的线程列表
    threads = []
    for j, url in enumerate(targetUrlList): # 使用enumerate函数遍历列表
        # 创建一个线程,传入目标网址,当前次数和索引
        t = threading.Thread(target=visit_url, args=(url, i, j))
        # 将线程添加到线程列表
        threads.append(t)
        # 启动线程
        t.start()
    # 等待所有线程结束
    for t in threads:
        t.join()

最后关于爬取数据,数据清洗,数据分析我们放到下一篇文章再讲述。

相关文章
|
3天前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
12 1
|
4天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。
|
4天前
|
数据采集 Java PHP
使用Python+requests简单实现模拟登录以及抓取接口数据
本文通过Python的requests库演示了如何实现模拟登录和抓取接口数据的过程,包括设置请求头、发送POST请求进行登录以及使用登录后的会话进行GET请求获取数据。
14 1
|
6天前
|
编解码 算法 Linux
Linux平台下RTSP|RTMP播放器如何跟python交互投递RGB数据供视觉算法分析
在对接Linux平台的RTSP播放模块时,需将播放数据同时提供给Python进行视觉算法分析。技术实现上,可在播放时通过回调函数获取视频帧数据,并以RGB32格式输出。利用`SetVideoFrameCallBackV2`接口设定缩放后的视频帧回调,以满足算法所需的分辨率。回调函数中,每收到一帧数据即保存为bitmap文件。Python端只需读取指定文件夹中的bitmap文件,即可进行视频数据的分析处理。此方案简单有效,但应注意控制输出的bitmap文件数量以避免内存占用过高。
|
5天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。 今天给小伙伴们分享的这份Python数据分析入门手册本着实用性的目的,着眼于整个数据分析的流程,介绍了从数据采集到可视化的大致流程。
|
6天前
|
数据采集 数据挖掘 数据处理
Python爬虫开发:爬取简单的网页数据
本文详细介绍了如何使用Python爬取简单的网页数据,以掘金为例,展示了从发送HTTP请求、解析HTML文档到提取和保存数据的完整过程。通过这个示例,你可以掌握基本的网页爬取技巧,为后续的数据分析打下基础。希望本文对你有所帮助。
|
1天前
|
消息中间件 SQL Java
实时数仓 Hologres产品使用合集之如何用python将kafka数据写入
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
3天前
|
JSON 缓存 安全
Python pickle 二进制序列化和反序列化 - 数据持久化
Python pickle 二进制序列化和反序列化 - 数据持久化
9 0
|
4天前
|
NoSQL Redis
Lettuce的特性和内部实现问题之在同步调用模式下,业务线程是如何拿到结果数据的
Lettuce的特性和内部实现问题之在同步调用模式下,业务线程是如何拿到结果数据的
|
4天前
|
API Python
Python FastAPI 获取 Neo4j 数据
Python FastAPI 获取 Neo4j 数据
6 0