Python采集二手车数据信息,看看什么车最适合你

news2024/11/27 8:45:53

目录标题

      • 前言
      • 环境使用:
      • 模块使用:
      • 代码展示
      • 尾语 💝

前言

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

环境使用:

  • Python 3.8

  • Pycharm

模块使用:

第三方模块 需要安装的

  • requests >>> pip install requests

  • parsel >>> pip install parsel

  • csv

第三方模块安装:

win + R 输入cmd 输入安装命令 pip install 模块名

(如果你觉得安装速度比较慢, 你可以切换国内镜像源)

完整源码、教程 点击此处跳转文末名片获取 ,我都放在这里了。

代码展示

# 导入数据请求模块
import requests
# 导入数据解析模块
import parsel
# 导入csv
import csv
"""
1. 创建文件对象 f
"""
f = open('data.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '品牌',
    '信息',
    '年份',
    '里程',
    '城市',
    '售价',
    '标签',
    '详情页',
])
csv_writer.writeheader()

"""
发送请求: 模拟浏览器对于url地址发送请求
- 模拟浏览器
    headers 请求头模拟伪装
    字典数据类型, 构建完整键值对
    
如果你要采集其他网站, 替换链接地址/请求头参数/请求方式

多页的数据采集 --> 分析请求链接变化规律

"""
# 模拟浏览器
headers = {
    # User-Agent 用户代理, 表示浏览器基本身份信息
    源码、解答、资料加V:qian97378免费领
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
for page in range(1, 51):
    # 请求链接
    url = f'*****/all/?page={page}'
    # 发送请求 <Response [200]> 响应对象 状态码200 表示请求成功
    response = requests.get(url=url, headers=headers)
"""
获取数据: 获取服务器返回响应数据 <网页源代码>
    response.text 获取响应文本数据
    
解析数据: 提取我们想要的数据内容
    解析方法: 选择那种解析方法, 根据返回数据来
        re正则表达式 -> 对于字符串数据直接解析
        css选择器 -> 根据标签属性提取数据
        xpath节点提取 -> 根据标签节点提取数据

css选择器 -> 根据标签属性提取数据 
    1. 找到数据对应标签位置
"""
    # 把获取到网页源代码 response.text, 转成可解析对象
    selector = parsel.Selector(response.text)  # <Selector xpath=None data='<html lang="en">\n<head>\n    <meta cha...'>
    # 第一次提取, 获取所有车辆信息所在li标签 获取多个基本返回列表
    lis = selector.css('.Content_left .gongge_ul li')
    # for循环遍历
    for li in lis:
    """
    .title::attr(title)
        定位class类型为title的标签里面title属性
    get 获取第一个标签
    getall 获取所有标签
        i::text 获取i标签里面文本
    """
        # 标题
        title = li.css('.title::attr(title)').get()
        info = li.css('.gongge_main p i::text').getall()
        price = li.css('.gongge_main .price .Total::text').get()
        tag = li.css('.qgg_tag::text').get().strip()
        href = li.css('.title::attr(href)').get()
    """
    split() 字符串分割
    replace() 字符串替换
    str.join() 列表合并成字符串
    strip() 去除字符串左右两端空格
    [0] [1] [2] 列表索引位置取值
    [2:] 切片
    """
        dit = {
            '品牌': title.split(' ')[0],
            '信息': ' '.join(title.split(' ')[2:]),
            '年份': info[0].replace('年', ''),
            '里程': info[1].replace('万公里', ''),
            '城市': info[2].strip(),
            '售价': price,
            '标签': tag,
            '详情页': href,
        }
        csv_writer.writerow(dit)
        print(dit)

尾语 💝

好了,今天的分享就差不多到这里了!

完整代码、更多资源、疑惑解答直接点击下方名片自取即可。

对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/720268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CTP WEB 100练(1/100)

考点&#xff1a;PHP代码审计 抓包发现source.php&#xff0c;访问下&#xff0c;出现了php代码 代码主体在这部分&#xff0c;满足三个条件&#xff1a;file不为空&file是字符串&checkFile通过 if (! empty($_REQUEST[file])&& is_string($_REQUEST[file])&am…

面试题:var、let、const的区别

var、let、const的区别 一、提出二、作用域不同2.1 作用域 三、变量提升四、重复声明五、可修改性六、初始值设置七、暂时性死区八、给全局添加属性总结若有错误&#xff0c;欢迎随时指正 一、提出 var是ES5提出的&#xff0c;let和const是ES6提出的。 二、作用域不同 2.1 作用…

大数据环境下保护个人隐私

近日&#xff0c;某高校毕业生在校期间窃取学校内网数据&#xff0c;收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注。在大数据时代&#xff0c;算法分发带来了隐私侵犯&#xff0c;在享受消费生活等便捷权利的同时&#xff0c;似乎又有不…

webrtc源码阅读之h264 RTP打包

本文来分析webrtc打包h264 rtp包的代码&#xff0c;版本m98 一、RTP协议 1.1 RTP协议概述 实时传输协议&#xff08;RTP&#xff09;是一个网络协议&#xff0c;它允许在网络上进行实时的音频和视频数据传输。RTP协议主要用于解决多媒体数据的实时传输问题&#xff0c;特别是…

关于Java已死,看看国外开发者怎么说的

博主在浏览 medium 社区时&#xff0c;发现了一篇点赞量 1.5k 的文章&#xff0c;名称叫《Java is Dead — 5 Misconceptions of developers that still think Java is relevant today!》直译过来就是《Java 已死 — 开发人员对 Java 在现代编程语言中的5个误解》。这篇文章可以…

什么是倒排索引

什么是倒排索引 搜索的核心需求是全文检索&#xff0c;全文检索简单来说就是要在大量文档中找到包含某个单词出现的位置&#xff0c;在传统关系型数据库中&#xff0c;数据检索只能通过 like 来实现&#xff0c;例如需要在酒店数据中查询名称包含公寓的酒店&#xff0c;需要通…

k8s如何对外公布一个应用程序

一&#xff1a;Kubernetes Service&#xff08;服务&#xff09;概述 事实上&#xff0c;Pod&#xff08;容器组&#xff09;有自己的 生命周期 (opens new window)。当 worker node&#xff08;节点&#xff09;故障时&#xff0c;节点上运行的 Pod&#xff08;容器组&#x…

全网最细,Fiddler抓包实战教程-辅助接口测试(二)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Fiddler的功能面板…

超低色散非球面ED镜片——减少空三分层的“秘密武器”

引言 倾斜相机作为精密光学电子仪器&#xff0c;光学部件相当于它的眼睛&#xff0c;直接关系到原始航片采集质量的高低&#xff0c;其重要性不言而喻。优质的原始航片能够降低空三分层概率&#xff0c;增加空三解算的鲁棒性&#xff0c;从而提高内业效率&#xff0c;节约项目…

Vue3中使用vee-validate进行表单验证

官网&#xff1a;Checkbox and Radio InputsValidating checkboxes and Radio inputshttps://vee-validate.logaretm.com/v4/examples/checkboxes-and-radio/ 安装vee-validate npm i -S vee-validate 示例1&#xff1a; <template><Formref"ref_form"c…

旅游卡景区小程序购票核销分销app系统

旅游业的蓬勃发展&#xff0c;景区旅游卡也逐渐成为游客出行的常见选择。为了提升景区旅游卡的购买和使用体验&#xff0c;许多景区开始采用小程序来提供购票和核销服务。同时&#xff0c;为了更好地推广景区旅游卡&#xff0c;许多景区也开发了分销App系统&#xff0c;以提供更…

linux代码提交记录 linus亲手改代码

kernel/git/torvalds/linux.git - Linux kernel source tree

【Megatron-DeepSpeed】张量并行工具代码mpu详解(一):并行环境初始化

相关博客 【Megatron-DeepSpeed】张量并行工具代码mpu详解(一)&#xff1a;并行环境初始化 【深度学习】【分布式训练】DeepSpeed&#xff1a;AllReduce与ZeRO-DP 【深度学习】混合精度训练与显存分析 【深度学习】【分布式训练】Collective通信操作及Pytorch示例 【自然语言处…

DOM“文档对象模型”

目录 DOM 1.节点层级 1.2.节点 常用节点 文档节点&#xff08;document&#xff09; 元素节点&#xff08;Element&#xff09; 属性节点&#xff08;Attribute) 文本节点&#xff08;Text&#xff09; 其他节点 DocumentType Comment DocumentFragment 1.3.节点树…

力扣 501. 二叉搜索树中的众数

题目来源&#xff1a;https://leetcode.cn/problems/find-mode-in-binary-search-tree/description/ C题解1&#xff1a;使用中序遍历将二叉搜索树有小到大放进数组中&#xff0c;在寻找最大数组。 class Solution { public:void traversal(TreeNode* node, vector<int>…

操作系统7:进程死锁

目录 1、死锁概述 &#xff08;1&#xff09;计算机中的资源分类 1.1 - 可重用性资源和消耗性资源 1.2 - 可抢占性资源和不可抢占性资源 &#xff08;2&#xff09;计算机系统中的死锁 &#xff08;3&#xff09;死锁的定义、必要条件和处理方法 3.1 - 死锁的定义 3.2 …

运输层:TCP拥塞控制

1.运输层&#xff1a;TCP拥塞控制 笔记来源&#xff1a; 湖科大教书匠&#xff1a;TCP的拥塞控制 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 网络资源&#xff1a;在计算机网络中的链路容量&#xff08;即带宽&#xff09;、交换结点中的缓存和…

windows 10 安装Python 3.10版

一、查找官网 1.python官网需要VPN(建立一个临时的、安全的连接&#xff0c;是一条穿过混乱的公用网络的安全、稳定的隧道。)&#xff0c;打开VPN进行代理之后&#xff0c;打开网址&#xff1a;https://www.python.org/ 二、查找所需下载的系统及版本 1.本机是winodws操作系统&…

计算机网络_ 1.3 网络核心 (数据交换_报文、分组交换)

计算机网络_数据交换_报文、分组交换 报文交换&#xff08;message switching&#xff09;分组交换&#xff08;package switching&#xff09;存储-转发&#xff08;store-and-forward&#xff09;传输延迟分组交换的报文交付时间 分组交换 vs 电路交换 报文交换&#xff08;m…