本文仅供学习交流使用,如侵立删!联系方式见文末

汽车之家口碑数据


2021.8.3 更新

增加用户信息参数、认证车辆信息等


2021.3.24 更新

更新最新数据接口


2020.12.25 更新

添加追加口碑数据字段,增加追加口碑数据接口

https://******/pm=2&seriesid={car}&grade=0&pageindex={i}&pagesize=20&isstruct=1'


2020.6.10 更新

口碑数据库:888316条


2020.6.8 更新

添加GUI界面


环境:

win10 ,Contos7.4

python3.6.1

pycharm2017

retrying=1.3.3

requests=2.22.0

fake_useragent

抓包获取口碑数据接口:

  • 车系口碑数据列表
# 口碑数据接口 ss:车系ID, p:页数, s:一页返回数据个数最多50
https://*****.com.cn/autov9.1.0/alibi/seriinos-ss3170-st0-p112-s50-isstruct0.json
  • 口碑详细数据接口
# 口碑详细数据接口 eid=3052096 口碑详情页ID
https://*****.com.cn/autov9.1.0/alibi/NeEaltionInfo.ashx?eid=

第一步 获取所有车型数据:

def get_model(self, url):
"""获取所有车型数据"""
response = self._parse_url(url)
content = response.content.decode('GBK') # GBK解码
# 剔除开头和结尾处多余字符 转换为json
content = content.replace('var listCompare$100= ', '').replace(';', '')
content = json.loads(content)
for i in content:
for q in i['List']:
# 车系ID
yield q['I']

第二步 获取所有车型数据:

def get_eid(self, url, car):
"""获取车型口碑ID列表"""
log_init().info(f'车系:{car} 口碑数据获取中...')
p = 1
while True:
try:
response = self._parse_url(url).json()
except:
return
koubeis = response.get('result').get('list')
if not koubeis:
log_init().info(f'车系:{car}车型口碑ID列表获取完成。')
return
eids = [i['Koubeiid'] for i in koubeis]
for eid in eids:
yield eid
p += 1

第三步 解析口碑详情数据:

def get_content(self, cars, eid):
"""解析口碑详情数据"""
url = f'{self.NewEvaluationUrl}{eid}'
log_init().info(f'{url} 数据获取中...')
response = self._parse_url(url).json()
result = response.get('result')
if not result:
log_init().info(f'{eid}无数据!')
return
specid = result.get('specid') # 车型ID
userId = result.get('userId') # 用户ID
userName = result.get('userName') # 用户姓名
specname = result.get('specname') # 购买车型
boughtprovincename = result.get('boughtprovincename') # 购买地点
dealername = result.get('dealername') # 购买经销商
boughtdate = result.get('boughtdate') # 购买时间
boughtPrice = result.get('boughtPrice') # 裸车购买价
actualOilConsumption = result.get('actualOilConsumption') # 油耗
drivekilometer = result.get('drivekilometer') # 目前行驶
spaceScene = result.get('spaceScene').get('score') # 空间
powerScene = result.get('powerScene').get('score') # 动力
maneuverabilityScene = result.get('maneuverabilityScene').get('score') # 操控
oilScene = result.get('oilScene').get('score') # 油耗
comfortablenessScene = result.get('comfortablenessScene').get('score') # 舒适性
apperanceScene = result.get('apperanceScene').get('score') # 外观
internalScene = result.get('internalScene').get('score') # 内饰
costefficientScene = result.get('costefficientScene').get('score') # 性价比
purpose = ','.join([i['purposename'] for i in result.get('purpose')]) # 购车目的 brandname = result.get('brandname') # 品牌名称
seriesname = result.get('seriesname') # 车系名称
boughtcityname = result.get('boughtcityname') # 车系名称 data = [[userId, userName, cars, specid, brandname, seriesname, specname, boughtprovincename, boughtcityname, dealername,
boughtdate, boughtPrice, actualOilConsumption, drivekilometer, spaceScene, powerScene,
maneuverabilityScene, oilScene, comfortablenessScene, apperanceScene, internalScene,
costefficientScene, purpose]]
return data

第四部 多线程启动:

@run_time
def main(self, num):
"""程序入口"""
# 多线程启动
pool = Pool(num)
for car in self.get_model():
# 判断是否获取
if self.keep_records(str(car), vali=True):
log_init().info(f'{car} 已获取跳过!')
continue
# 启动线程
pool.apply_async(self.run, (car,)) pool.close()
pool.join()

运行结果:




本文仅供学习交流使用,如侵立删!
企鹅 、WX: 1033383881

Python 爬取汽车之家口碑数据的更多相关文章

  1. 使用python抓取汽车之家车型数据

    import requests import pymysql HOSTNAME = '127.0.0.1' USERNAME = 'root' PASSWORD = 'zyndev' DATABASE ...

  2. python3 爬取汽车之家所有车型数据操作步骤(更新版)

    题记: 互联网上关于使用python3去爬取汽车之家的汽车数据(主要是汽车基本参数,配置参数,颜色参数,内饰参数)的教程已经非常多了,但大体的方案分两种: 1.解析出汽车之家某个车型的网页,然后正则表 ...

  3. python 爬取天猫美的评论数据

    笔者最近迷上了数据挖掘和机器学习,要做数据分析首先得有数据才行.对于我等平民来说,最廉价的获取数据的方法,应该是用爬虫在网络上爬取数据了.本文记录一下笔者爬取天猫某商品的全过程,淘宝上面的店铺也是类似 ...

  4. Python爬虫——使用 lxml 解析器爬取汽车之家二手车信息

    本次爬虫的目标是汽车之家的二手车销售信息,范围是全国,不过很可惜,汽车之家只显示100页信息,每页48条,也就是说最多只能够爬取4800条信息. 由于这次爬虫的主要目的是使用lxml解析器,所以在信息 ...

  5. Python 爬虫实例(15) 爬取 汽车之家(汽车授权经销商)

    有人给我吹牛逼,说汽车之家反爬很厉害,我不服气,所以就爬取了一下这个网址. 本片博客的目的是重点的分析定向爬虫的过程,希望读者能学会爬虫的分析流程. 一:爬虫的目标: 打开汽车之家的链接:https: ...

  6. Python 爬取大众点评 50 页数据,最好吃的成都火锅竟是它!

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 胡萝卜酱 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  7. java爬虫入门--用jsoup爬取汽车之家的新闻

    概述 使用jsoup来进行网页数据爬取.jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuer ...

  8. Python爬取上交所一年大盘数据

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 半个码农2018 PS:如有需要Python学习资料的小伙伴可以加点 ...

  9. Python爬取某网站文档数据完整教程(附源码)

    基本开发环境 (https://jq.qq.com/?_wv=1027&k=NofUEYzs) Python 3.6 Pycharm 相关模块的使用 (https://jq.qq.com/?_ ...

随机推荐

  1. L2M-GAN: Learning to Manipulate Latent Space Semantics for Facial Attribute Editing阅读笔记

    L2M-GAN: Learning to Manipulate Latent Space Semantics for Facial Attribute Editing 2021 CVPR L2M-GA ...

  2. Fastflow——基于golang的轻量级工作流框架

    Fastflow 是什么?用一句话来定义它:一个 基于golang协程.支持水平扩容的分布式高性能工作流框架. 它具有以下特点: 易用性:工作流模型基于 DAG 来定义,同时还提供开箱即用的 API, ...

  3. STM32 CubeMx使用教程

    一.STM32CubeMX 简介 STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以 ...

  4. 【Java面试】如何中断一个正在运行的线程?

    一个去京东面试的工作了5年的粉丝来找我说: Mic老师,你说并发编程很重要,果然我今天又挂在一道并发编程的面试题上了. 我问他问题是什么,他说:"如何中断一个正在运行中的线程?". ...

  5. WinForms获得已打开窗体的引用

    更新记录 本文迁移自Panda666原博客,原发布时间:2021年7月6日. 对于已经打开的窗口,可以通过Application.OpenForms属性进行获得.该属性是一个FormCollectio ...

  6. CYaRon!语

    P3695 CYaRon!语 开始之前 上次水了些小模拟之后感觉不能再颓废了,于是就来大模拟. 然后这个题花了我一个多星期 还是最差解 不过,为了纪念我的第 20 道紫题,纪念我这一周的努力,我还是想 ...

  7. 关于使用koa 跨域问题你可能会遇到

    var cors = require('koa2-cors');// 跨域const allowOrigins = ["http://localhost:8080" // 需要跨域 ...

  8. Canal实现MySQL协议

    目录 代码流程 执行dump前 执行dump 在学习Canal的时候很好奇Canal是如何模拟成MySql Slave来接收数据的 MySql Slave会向主库发送dump协议来接收bin-log数 ...

  9. Java基础-JVM篇

    1.1 .线程 ​ 这里所说的线程指程序执行过程中的一个线程实体.JVM 允许一个应用并发执行多个线程.Hotspot JVM 中的 Java 线程与原生操作系统线程有直接的映射关系.当线程本地存储. ...

  10. 快速保存Win10锁屏壁纸,收获美丽瞬间

    对于写程序而言,每天接触得最多的就是电脑了 所以保持一种开放乐观,豁达美丽的心情是十分有必要的 使用"Everything"工具,输入"LocalState\Assets ...