Python采集二手车数据信息,看看啥车最得心意

news2024/11/25 10:36:00

前言

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

环境使用:

  • python 3.8 运行代码

  • pycharm 2022.3.2 辅助敲代码

    • 专业版是付费的 <码可以免费用>

    • 社区版是免费的

模块使用:

内置模块 无需安装

  • csv

第三方模块 需要安装的

  • requests >>> pip install requests

  • parsel >>> pip install parsel

第三方模块安装:

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

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

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

采集数据代码

# 导入数据请求模块 <第三方模块, 需要安装 pip install requests>
import requests
# 导入数据解析模块 <第三方模块, 需要安装 pip install parsel>
import parsel
# 导入csv
import csv

open内置函数 --> 创建文件

f = open('data1.csv', mode='w', encoding='utf-8', newline='')

调用csv模块里面字典写入DictWriter f文件对象 fieldnames 字段名 <表头>

csv_writer = csv.DictWriter(f, fieldnames=[
    '标题'
    '年份',
    '里程',
    '城市',
    '价格',
    '标签',
    '保修',
    '详情页',
])
```python
# 写入表头
```python
csv_writer.writeheader()

“”"

  1. 发送请求, 模拟浏览器对于url地址发送请求

“”"

for page in range(1, 51):
    try:
        # 请求链接
        url = f'https://****/all/?page={page}'
        # 模拟浏览器 < headers请求头 >
        headers = {
            # User-Agent 用户代理, 表示浏览器基本身份信息
            'User-Agent': ' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
        }

发送请求

通过requests模块里面get请求方法对于url地址发送请求, 并且携带上headers请求头伪装, 最后用自定义变量名接受返回数据

        response = requests.get(url=url, headers=headers)
        print(response)

“”"

  1. 获取数据, 获取网页源代码 <服务器返回响应数据>

  2. 解析数据, 提取我们想要的数据内容

“”"

        # 转换数据, 把获取到 html字符串数据 <response.text>, 转成可解析对象
        selector = parsel.Selector(response.text)  # <Selector xpath=None data='<html lang="en">\n<head>\n    <meta cha...'>
        print(selector)
        # 获取所有li标签 --> 获取多个数据, 返回列表
        lis = selector.css('.Content_left .gongge_ul .li')
        # for循环遍历, 把列表里面元素一个一个提取出来
        for li in lis:
            # 标题
            title = li.css('a.title span::text').get()
            # 信息
            info = li.css('.gongge_main p i::text').getall()
            year = info[0].replace('年', '')# 年份
            km = info[1].replace('万公里', '')  # 里程
            city = info[2].strip()  # 城市
            # 价格
            price = li.css('.price .Total::text').get()
            tag = li.css('.car_tag em::text').get().strip()  # 标签
            label = li.css('.tc_label::text').get()  # 是否保修
            href = li.css('a.title::attr(href)').get()  # 详情页
            dit = {
                '标题': title,
                '年份': year,
                '里程': km,
                '城市': city,
                '价格': price,
                '标签': tag,
                '保修': label,
                '详情页': href,
            }
            # 写入数据
            csv_writer.writerow(dit)
            print(title, year, km, city, price, tag, label, href)
    except:
        print('源码、解答、教程+V:pytho8987获取,验证备注“777”')

括展内容

  1. 解析方法: 都要掌握, 那个方便用那个

    re : 直接提取字符串数据

    css : 根据标签属性提取数据内容

    xpath: 根据标签节点提取数据内容

  2. response.text 获取响应的文本数据 <获取网页源代码>

尾语 💝

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

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

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

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

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

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

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

相关文章

大数据可视化开源平台,一招让数据资源活泛起来!

在现代化办公环境中&#xff0c;数据资源也是非常重要的一种发展要素。有不少朋友会私信我们询问道&#xff1a;如何将企业内部的数据资源利用起来&#xff0c;真正发挥其价值为我所有&#xff1f;在这里&#xff0c;推荐大家了解大数据可视化开源平台&#xff0c;这是可以为企…

深度学习的各种卷积的总结

如果你听说过深度学习中不同种类的卷积&#xff08;比如 2D / 3D / 1x1 /转置/扩张&#xff08;Atrous&#xff09;/空间可分/深度可分/平展/分组/混洗分组卷积&#xff09;&#xff0c;并且搞不清楚它们究竟是什么意思&#xff0c;那么这篇文章就是为你写的&#xff0c;能帮你…

既然jmeter也能做接口自动化,为什么还需要pytest自己搭框架?

今天这篇文章呢&#xff0c;我会从以下几个方面来介绍&#xff1a; 1、首先介绍一下pytest框架 2、带大家安装Pytest框架 3、使用pytest框架时需要注意的点 4、pytest的运行方式 5、pytest框架中常用的插件 一、pytest框架介绍 pytest 是 python 的第三方单元测试框架&a…

微信如何群发消息?如何群发突破200上限?

相信每到各种节日的时候&#xff0c;很多人都会发布或收到微信好友的节日祝福或活动通知。群发已经是一件很普遍的事了。逢年过节&#xff0c;发个微信祝福&#xff0c;是维系关系的必须&#xff1b;发个活动通知&#xff0c;是为了告知客户&#xff0c;促进销售。 01 微信自带…

2023年最新网络安全面试题合集(附答案解析)

前言 为了拿到心仪的 Offer 之外&#xff0c;除了学好网络安全知识以外&#xff0c;还要应对好企业的面试。 作为一个安全老鸟&#xff0c;工作这么多年&#xff0c;面试过很多人也出过很多面试题目&#xff0c;也在网上收集了各类关于渗透面试题目&#xff0c;里面有我对一些…

佩戴舒适音质悦耳,试试这款耳夹式耳机,塞那Z51S Pro Max上手

蓝牙耳机很多人每天都用&#xff0c;工作学习的时候戴上&#xff0c;可以随便听听舒缓心情&#xff0c;随便哪个平台都有丰富的音乐、播客等类型的资源&#xff0c;听着听着就下班了。市面上蓝牙耳机的种类这两年多了不少&#xff0c;我目前用的是一款sanag塞那Z51S Pro Max&am…

从Android UI收集流的更安全方法

从Android UI收集流的更安全方法 在安卓应用中&#xff0c;通常从UI层收集Kotlin flows以显示屏幕上的数据更新。但是&#xff0c;为了确保不做过多的工作、浪费资源&#xff08;包括CPU和内存&#xff09;或在视图转到后台时泄漏数据&#xff0c;您需要收集这些flows。 在本…

(2023,语义混合)处理神经网络中语义和视觉对齐的差异

Addressing Discrepancies in Semantic and Visual Alignment in Neural Networks 公众号&#xff1a;EDPJ 目录 0. 摘要 1. 简介 2. 相关工作 3. 方法 4. 实验 5. 结果 6. 讨论与结论 参考 S. 总结 S.1 主要思想 S.2 语义混合 S.3 方法 0. 摘要 对于图像分类任…

苹果Vision Pro将引爆人机交互的重大变革

2023年6月6日&#xff0c;苹果发布了大家期待已久的Vision Pro&#xff0c;Vision Pro是一款专业级MR设备&#xff0c;融合了虚拟现实(VR)和增强现实(AR)技术&#xff0c;可以让用户完全沉浸在高分辨率显示内容中。允许用户以一种全新的方式在其周围的空间中查看APP。用户可以用…

unreal 5 实现角色拾取功能

要实现角色拾取功能&#xff0c;我们需要实现蓝图接口功能&#xff0c;蓝图接口主要提供的是蓝图和蓝图之间可以通信&#xff0c;接下来&#xff0c;跟着教程&#xff0c;实现一下角色的拾取功能。 首先&#xff0c;我们要实现一个就是可视区的物品在朝向它的时候&#xff0c;会…

基于云技术的域名解析系统研究一:传统解析技术弊端(中科三方)

域名解析是互联网的一项重要基础作用&#xff0c;主要用于将域名翻译成计算机可识别的IP地址&#xff0c;完成对网络中其他主机的寻址任务。我们日常工作生活中的大部分网络应用&#xff0c;如网站访问、电子邮件以及其他各种web应用服务&#xff0c;都需要经过域名解析的寻址去…

Oracle的登陆问题和初级学习增删改查

1&#xff1a;学习Oracle首先需要安装Oracle&#xff0c;网上已经有很多很多教程了&#xff0c;这里不做叙述&#xff0c;自己百度即可&#xff0c;这里安装的标准版&#xff0c;个人根据需求安装学习或者企业开发即可。如果安装出错&#xff0c;自己百度Oracle的卸载即可&…

终极指南:Scrum中如何设置需求优先级

需求众多不知道如何下手&#xff1f;总想先做简单的需求&#xff0c;复杂需求却一拖再拖&#xff1f;那么&#xff0c;我们是时候开始考虑如何设置需求优先级了。 本期终极指南将展示如何为需求设置有效优先级&#xff0c;如何有效管理工作量&#xff0c;让效率指数倍增长&…

软件测试和软件开发哪个发展更好?我来告诉你怎么选

目录 一、基本素质要求 二、性格要求 三、入职门槛 四、转行难度 五、知识结构 六、竞争压力 七、职业发展 八、职业前景 总结 一、基本素质要求 这里的基本素质包括比如速辑思维能力、分析问题能力、沟通能力、协作能力、怀疑精神等方面&#xff0c; 【软件测试】: …

详细分析开发一个Servlet的步骤从实现Servlet接口,继承GenericServlet抽象类,继承HttpServlet抽象类逐步完善

实现Servlet接口 jakarta.servlet.Servlet是Servlet规范中的核心接口 Servlet对象的生命周期 Servlet对象的创建&#xff0c;对象上方法的调用&#xff0c;对象最终的销毁都是由Tomcat服务器全权负责的,JavaWeb程序员是无权干预的 第一步: Tomcat服务器本质是一个WEB容器, …

cocos creator 鼠标画笔|画线

cocos creator 版本使用 至少适配版本2.3.2以上 案例: 简要思路:MOUSE_MOVE事件和Graphics组件实现 前端也可以通过canvas和mousemove事件实现&#xff0c;原理一致 具体步骤如下&#xff1a; 1.添加节点Node 2.在Node节点上绑定组件Graphics 3.添加下方脚本drawcontroll.ts…

JMeter测试笔记(三):基本组件的使用

引言&#xff1a; 关于JMeter的测试笔记&#xff0c;这是第三篇&#xff0c;主要是介绍JMeter的基本组件的使用。 在进行性能测试时&#xff0c;了解并掌握基本组件的使用非常重要&#xff0c;因为它们是构成JMeter测试计划的基础。在本文中&#xff0c;我们将深入了解JMeter…

解决IDEA 引入GO SDK无法加载本地Go,The selected directory is not a valid home for Go SDK

解决IDEA 引入GO SDK无法加载本地Go&#xff0c;The selected directory is not a valid home for Go SDK 解决方法&#xff1a; 找到按照go目录下对应&#xff1a; C:\Program Files\go\go1.20.4\src\runtime\internal\sys 位置有一个文件名“zversion.go” 编辑文件 const …

JAVA开发(保姆级微服务搭建过程)

一、微服务的概念以及发展过程 微服务是指只提供一项功能的服务。 微服务是围绕某个业务领域展开的。比如把电商业务比较一个业务领域&#xff0c;技术部、产品部等就是围绕电商业务领域展开的微服务。在电商项目领域&#xff0c;由支付、商品、订单等微服务组成。 微服务架构…

【TypeScript】枚举类型和泛型的详细介绍

目录 TypeScript枚举类型 TypeScript泛型介绍 &#x1f3b2;泛型的基本使用 &#x1f3b2;泛型接口的使用 &#x1f3b2;泛型类的使用 &#x1f3b2;泛型的类型约束 枚举类型 枚举类型是为数不多的TypeScript特有的特性之一, JavaScript是没有的&#xff1a; 枚举其实就…