python练手小案例——采集二手车数据

news2024/11/25 13:43:38

前言

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

本次案例亮点:

1、系统分析目标网页

2、html标签数据解析方法

3、海量数据一键保存

环境介绍:

在开始写我们的代码之前,我们要准备好运行代码的程序

  • Python 3.8.8 | Anaconda, Inc. :解释器

  • Pycharm 2021.2版本 : 代码编辑器

不会安装的可以文末名片+我获取哦 😎

  • requests >>> 该模块主要用来发 送 HTTP 请求,内置模块,无需安装

  • parsel >>> HTML/XML 文档解析库,也是知名框架 Scrapy 内置的解析器,内置模块,无需安装

第三方安装模块:win + R 输入cmd 输入安装命令 pip install 模块名

如果出现爆红 可能是因为 网络连接超时 切换国内镜像源

本次目标

代码展示

导入模块

import parsel
import requests
headers = {
    'Host': 'www.che168.com',
    'Referer': 'https://****m/china/a0_0msdgscncgpi1ltocsp100exx0/?pvareaid=102179',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
}

def get_proxies():
    url = 'http://*****/getip?secret=pdozxje3vveh2uvj&num=1&type=json&port=1&time=3&mr=1&sign=c651882369b0fffa9a01aeef9ae275b1'
    json_data = requests.get(url).json()
    data = json_data['data'][0]
    proxies = {
        'http://': f'http://{data["ip"]}:{data["port"]}',
        'https://': f'http://{data["ip"]}:{data["port"]}'
    }
    return proxies
  1. 发送请求 请求列表页面
for page in range(1, 101):
    url = f'https://****/china/a0_0msdgscncgpi1ltocsp{page}exx0/'
    response = requests.get(url=url, headers=headers, proxies=get_proxies())
  1. 获取数据
    html_data = response.text
  1. 解析数据
    select = parsel.Selector(html_data)
    detail_url_list = select.xpath("//ul[@class='viewlist_ul']/li/a[@class='carinfo']/@href").getall()
    for detail_url in detail_url_list[:-1]:
        if detail_url[1] == '/':
            detail_url = 'https:' + detail_url
        else:
            detail_url = '******' + detail_url
        detail_html = requests.get(detail_url, headers=headers, proxies=get_proxies()).text
        detail_select = parsel.Selector(detail_html)
        title = detail_select.xpath("string(//h3[@class='car-brand-name'])").get("").strip()
        licheng = detail_select.xpath("//ul[@class='brand-unit-item fn-clear']/li[1]/h4/text()").get("").strip()
        shangpai = detail_select.xpath("//ul[@class='brand-unit-item fn-clear']/li[2]/h4/text()").get("").strip()
        pailiang = detail_select.xpath("//ul[@class='brand-unit-item fn-clear']/li[3]/h4/text()").get("").strip()
        suozaidi = detail_select.xpath("//ul[@class='brand-unit-item fn-clear']/li[4]/h4/text()").get("").strip()
        guobiao = detail_select.xpath("//ul[@class='brand-unit-item fn-clear']/li[5]/h4/text()").get("").strip()
        price = detail_select.xpath("string(//span[@id='overlayPrice'])").get("").strip()
        print(title, licheng, shangpai, pailiang, suozaidi, guobiao, price, detail_url)

尾语 💝

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

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

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

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

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

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

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

相关文章

物联网|ARM|Keil安装|MDK|增加V5编译器|物联网开发系列课程之零基础玩转Cortex-M系列CPU-学习笔记(1)

文章目录 第一阶段-课程背景及简介问题一 什么是物联网问题二 嵌入式系统在物联网中的角色问题三 不一样的嵌入式系统 课程介绍课程内容提要(学什么)课程特色课程要求(怎么学)课程目的(怎么用)课程约定 浅谈ARM什么是ARMARM体系架构CPU的特点ARM体系架构…

04-24 每日一题 1163. 按字典序排在最后的子串 学习笔记反思

不晓得脑袋的灵活性是不是和精力的充沛程度相关,看到红色的困难,感觉自信都没了 题目描述 给你一个字符串 s ,找出它的所有子串并按字典序排列,返回排在最后的那个子串 示例 1 :::success 输入:s “abab” 输出&…

【CocosCreator入门】CocosCreator组件 | Button(按钮)组件

Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中的Button组件可以通过设置按钮的状态和点击事件,实现在游戏中添加按钮交互的功能。 目录 一、组件介绍 二、组件属性 三、点击事件 Ⅰ、通过属性检查器添加回调 Ⅱ、通…

【AI话题】Chatbot UI下实现的对话模拟机

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 项目初衷:一、功能介绍:二、使用说明:1.注意事项: 三,未来功能:总结 项目初衷: …

让人悲观的国内ChatGPT的未来

最近关于ChatGPT的火爆已经不是简单的AI圈的事了,它已经席卷了所有的IT、媒体圈子,甚至是不同领域不同行业的人,只要你还对于变化与AI有一定的了解,那我相信你一定能知道ChatGPT是什么了。ChatGPT在某种程度上已经是相当于AGI通用…

时间序列的数据分析(七):数据平稳性

之前已经完成了六篇关于时间序列的博客,还没有阅读过的读者请先阅读: 时间序列的数据分析(一):主要成分 时间序列的数据分析(二):数据趋势的计算 时间序列的数据分析(三):经典时间序列分解 时间序列的数据分析(四):STL分解时间序列的数据分析(五):简单…

怎么使用gpt4-在哪里使用gpt

gpt-4怎么用 目前,GPT-4尚未发布或公开释放。因此,我们目前无法使用GPT-4。GPT-4是由OpenAI公司开发的人工智能语言模型,其预计能够比先前的版本GPT-3更加强大和智能化,但我们需要等待OpenAI官方发布有关GPT-4的更多信息。 如果…

搜索引擎找外贸客户

说起搜索引擎,我们每个人都不陌生,也许第一时间就能想到平日经常使用的“百度一下”和凭借强大算法及丰富功能占据近85%市场份额的谷歌搜索(Statista 2023年1月数据)这些耳熟能详的搜索引擎。对于外贸人而言搜索引擎也是非常实用的…

内卷的上海车展上,百度Apollo带来新型开放整零关系

/ 导读 / 汽车的智能化发展已然成为了当前市场最有热度的话题,更有希望引领新一代产业革命的浪潮。百度作为最早探索智能驾驶领域的企业之一,多年来始终打磨技术产品,已经形成了全栈的解决方案,从而帮助企业造好车。 在上海车展前…

谁不看谁是

报错Cannot create property type on string 是因为 你定义的相关变量是字符串 改成这样就行了 vue报错Cannot set properties of undefined (setting ‘xxx‘) 是因为没获取到值,需要在方法外层定义变量等于this,然后在方法内使用变量.name去查找值&a…

项目沟通管理5大技巧 第4个很重要

1、充分使用twitter管理沟通模型 项目沟通会议可以充分使用witter的管理沟通模型,提高会议沟通效率。使用此模型,主要是有三步: 第一步:倾听,项目经理需要保持中立的立场,不先表态,让团队成员畅…

nacos 1.4.2升级到nacos 2.1.1遇到的一些坑

文章目录 1 前言2 拉取nacos配置失败2.1 可能是端口号问题2.2 可能存在jar冲突2.3 可能nacos配置不对 1 前言 为了各组件更好的的兼容,最近系统进行了nacos升级, 由1.4.2升级为2.1.1,这里把遇到的一些坑做一下记录。 2 拉取nacos配置失败 在升级后&am…

Vue(事件处理、计算属性、监视属性)

一、事件处理 1. 语法 Vue模板 v-on:xxx"处理函数" xxx(作为绑定事件的简写)"处理函数" xxx指代的都是事件名 Vue实例 必须使用methods配置对象(配置多个函数方法) methods中配置函数,都是Vue…

哈希表题目:网格照明

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:网格照明 出处:1001. 网格照明 难度 6 级 题目描述 要求 在 n n \texttt{n} \times \texttt{n} nn 的二维网格 grid \texttt{grid}…

【C++技能树】原来比C方便这么多 --引用、内联函数、Auto、NULL与nullptr

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

【软考备战·希赛网每日一练】2023年4月24日

文章目录 一、今日成绩二、错题总结第一题第二题第三题第四题第五题 三、知识查缺 题目及解析来源:2023年04月24日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析: 第二题 解析: DPI表示每英寸像素点的个数。 300DPI表示每英寸…

ESP32学习六-构建系统

一、简介 如果想要新建一个ESP32项目,需要包含很多其他的文件夹和文件,如果对ESP32的勾线系统原理不理解,就会产生出很多编译不通过的问题。这里就对ESP-IDF构建系统的实现原理做一个简单的总结。 测试环境:Ubuntu18.4 ESP-IDF&am…

Observability:添加免费和开放的 Elastic APM 作为 Elastic 可观察性部署的一部分 - 8.x

作者:David Hope 在最近的一篇博文中,我们向你展示了如何开始使用 Elastic 可观察性的免费开放层。 下面,我们将介绍你需要做些什么来扩展你的部署,这样你就可以开始免费从应用程序性能监控(APM)或跟踪集群…

我国直播电商行业市场增速下降 核心竞争力发生转变 新一轮洗牌变革步伐将加快

1、直播电商概念及其产业链图解 直播电商是属于网络直播的一个分支,属于一种泛娱乐类直播,电商店铺的店家或模特主播在直播间通过借助视频录制工具,将店铺所售的商品展示给用户,并为用户答疑解惑,提供实时的客服服务&…

【JavaEE初阶】多线程(二)线程状态以及多线程安全问题

摄影分享~~ 文章目录 线程的状态多线程带来的风险线程安全线程安全的原因解决线程不安全问题(加锁)synchronized关键字-监视器锁monitor locksynchronized的特性 java中的死锁问题死锁死锁的三个典型情况死锁的四个必要条件如何避免死锁? J…