【原创】Python 二手车之家车辆档案数据爬虫

简介: 【原创】Python 二手车之家车辆档案数据爬虫



本文仅供学习交流使用,如侵立删!

二手车之家车辆档案数据爬虫

先上效果图

环境

  • win10
  • python3.9
  • lxml、retrying、requests

需求分析

需求:主要是需要车辆详情页中车辆档案的数据先抓包分析一波,网页抓包没有什么有用的,转战APP

拿到数据接口就简单了,直接构造请求保存数据即可

获取车辆信息列表

   def_get_car_list(self, _url: str):

       """

       获取二手车信息列表

       """

       res = self._parse_url(_url=_url)

       ret = res.text  # 解析获得字符串类型数据

       result = etree.HTML(ret)  # 转换数据类型为HTML,方便使用xpath

       url_list = result.xpath('//*[@id="goodStartSolrQuotePriceCore0"]/ul/li/a/@href')

       ifnoturl_list:

           print('获取完成!')

           return

       foriinurl_list:

           # 有些车型url直接是带域名的

           if'www.che168.com/'ini:

               yield'https://'+i[2:]

           else:

               yield'https://www.che168.com'+i

获取车辆详情信息

   def_get_car_info(self, _url: str):

       """

       获取车辆详情信息

       """

       res = self._parse_url(_url=_url)

       ret = res.text  # 解析获得字符串类型数据

       result = etree.HTML(ret)  # 转换数据类型为HTML,方便使用xpath

       # 标题

       title = result.xpath('//div[@class="car-box"]/h3//text()')

       title = title[1].strip() iflen(title) >1elsetitle[0].strip()

       # 上牌时间

       play_time = result.xpath('//*[@id="nav1"]/div[1]/ul[1]/li[1]/text()')

       play_time = play_time[0].strip() ifplay_timeelse'-'

       # 表显里程

       display_mileage = result.xpath('//*[@id="nav1"]/div[1]/ul[1]/li[2]/text()')

       display_mileage = display_mileage[0].strip() ifdisplay_mileageelse'-'

       # 变速箱

       gearbox = result.xpath('//*[@id="nav1"]/div[1]/ul[1]/li[3]/text()')

       gearbox = gearbox[0].strip() ifgearboxelse'-'

       # 排放标准

       emission_standards = result.xpath('//*[@id="nav1"]/div[1]/ul[1]/li[4]/text()')

       emission_standards = emission_standards[0].strip() ifemission_standardselse'-'

       # 排量

       displacement = result.xpath('//*[@id="nav1"]/div[1]/ul[1]/li[5]/text()')

       displacement = displacement[0].strip() ifdisplacementelse'-'

       # 发布时间

       release_time = result.xpath('//*[@id="nav1"]/div[1]/ul[1]/li[6]/text()')

       release_time = release_time[0].strip() ifrelease_timeelse'-'

       # 年检到期

       annual_inspection_expires = result.xpath('//*[@id="nav1"]/div[1]/ul[2]/li[1]/text()')

       annual_inspection_expires = annual_inspection_expires[0].strip() ifannual_inspection_expireselse'-'

       # 保险到期

       insurance_expires = result.xpath('//*[@id="nav1"]/div[1]/ul[2]/li[2]/text()')

       insurance_expires = insurance_expires[0].strip() ifinsurance_expireselse'-'

       # 质保到期

       warranty_expires = result.xpath('//*[@id="nav1"]/div[1]/ul[2]/li[3]/text()')

       warranty_expires = warranty_expires[0].strip() ifwarranty_expireselse'-'

       # 过户次数

       number_of_transfers = result.xpath('//*[@id="nav1"]/div[1]/ul[2]/li[5]/text()')

       number_of_transfers = number_of_transfers[0].strip() ifnumber_of_transferselse'-'

       # 所在地

       location = result.xpath('//*[@id="nav1"]/div[1]/ul[2]/li[6]/text()')

       location = location[0].strip() iflocationelse'-'

       # 发动机

       engine = result.xpath('//*[@id="nav1"]/div[1]/ul[3]/li[1]/text()')

       engine = engine[0].strip() ifengineelse'-'

       # 车辆级别

       vehicle = result.xpath('//*[@id="nav1"]/div[1]/ul[3]/li[2]/text()')

       vehicle = vehicle[0].strip() ifvehicleelse'-'

       # 车身颜色

       car_color = result.xpath('//*[@id="nav1"]/div[1]/ul[3]/li[3]/text()')

       car_color = car_color[0].strip() ifcar_colorelse'-'

       # 燃油标号

       fuel_label = result.xpath('//*[@id="nav1"]/div[1]/ul[3]/li[4]/text()')

       fuel_label = fuel_label[0].strip() iffuel_labelelse'-'

       # 驱动方式

       drive_mode = result.xpath('//*[@id="nav1"]/div[1]/ul[3]/li[5]/text()')

       drive_mode = drive_mode[0].strip() ifdrive_modeelse'-'

       data = [[title, play_time, display_mileage, gearbox, emission_standards, displacement, release_time, annual_inspection_expires,

                insurance_expires, warranty_expires, number_of_transfers, location, engine, vehicle, car_color, fuel_label, drive_mode, _url]]

       print(data)

       self._save_csv(data=data)


资源下载

https://download.csdn.net/download/qq_38154948/85358088


本文仅供学习交流使用,如侵立删!
相关文章
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
161 10
|
5天前
|
数据采集 Web App开发 数据可视化
Python用代理IP获取抖音电商达人主播数据
在当今数字化时代,电商直播成为重要的销售模式,抖音电商汇聚了众多达人主播。了解这些主播的数据对于品牌和商家至关重要。然而,直接从平台获取数据并非易事。本文介绍如何使用Python和代理IP高效抓取抖音电商达人主播的关键数据,包括主播昵称、ID、直播间链接、观看人数、点赞数和商品列表等。通过环境准备、代码实战及数据处理与可视化,最终实现定时任务自动化抓取,为企业决策提供有力支持。
|
1天前
|
数据采集 JSON 数据格式
Python爬虫:京东商品评论内容
京东商品评论接口为商家和消费者提供了重要工具。商家可分析评论优化产品,消费者则依赖评论做出购买决策。该接口通过HTTP请求获取评论内容、时间、点赞数等数据,支持分页和筛选好评、中评、差评。Python示例代码展示了如何调用接口并处理返回的JSON数据。应用场景包括产品优化、消费者决策辅助、市场竞争分析及舆情监测。
|
13天前
|
数据采集 供应链 API
Python爬虫与1688图片搜索API接口:深度解析与显著收益
在电子商务领域,数据是驱动业务决策的核心。阿里巴巴旗下的1688平台作为全球领先的B2B市场,提供了丰富的API接口,特别是图片搜索API(`item_search_img`),允许开发者通过上传图片搜索相似商品。本文介绍如何结合Python爬虫技术高效利用该接口,提升搜索效率和用户体验,助力企业实现自动化商品搜索、库存管理优化、竞品监控与定价策略调整等,显著提高运营效率和市场竞争力。
44 3
|
24天前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
25天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
1月前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
1月前
|
数据采集 安全 定位技术
使用代理IP爬虫时数据不完整的原因探讨
在信息化时代,互联网成为生活的重要部分。使用HTTP代理爬取数据时,可能会遇到失败情况,如代理IP失效、速度慢、目标网站策略、请求频率过高、地理位置不当、网络连接问题、代理配置错误和目标网站内容变化等。解决方法包括更换代理IP、调整请求频率、检查配置及目标网站变化。
63 11
|
1月前
|
数据采集 存储 API
利用Python爬虫获取1688关键词接口全攻略
本文介绍如何使用Python爬虫技术合法合规地获取1688关键词接口数据,包括环境准备、注册1688开发者账号、获取Access Token、构建请求URL、发送API请求、解析HTML及数据处理存储等步骤,强调遵守法律法规和合理使用爬虫技术的重要性。
|
20天前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。