Python 爬取汽车之家口碑数据
| 本文仅供学习交流使用,如侵立删!联系方式见文末 |
汽车之家口碑数据
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 爬取汽车之家口碑数据的更多相关文章
- 使用python抓取汽车之家车型数据
import requests import pymysql HOSTNAME = '127.0.0.1' USERNAME = 'root' PASSWORD = 'zyndev' DATABASE ...
- python3 爬取汽车之家所有车型数据操作步骤(更新版)
题记: 互联网上关于使用python3去爬取汽车之家的汽车数据(主要是汽车基本参数,配置参数,颜色参数,内饰参数)的教程已经非常多了,但大体的方案分两种: 1.解析出汽车之家某个车型的网页,然后正则表 ...
- python 爬取天猫美的评论数据
笔者最近迷上了数据挖掘和机器学习,要做数据分析首先得有数据才行.对于我等平民来说,最廉价的获取数据的方法,应该是用爬虫在网络上爬取数据了.本文记录一下笔者爬取天猫某商品的全过程,淘宝上面的店铺也是类似 ...
- Python爬虫——使用 lxml 解析器爬取汽车之家二手车信息
本次爬虫的目标是汽车之家的二手车销售信息,范围是全国,不过很可惜,汽车之家只显示100页信息,每页48条,也就是说最多只能够爬取4800条信息. 由于这次爬虫的主要目的是使用lxml解析器,所以在信息 ...
- Python 爬虫实例(15) 爬取 汽车之家(汽车授权经销商)
有人给我吹牛逼,说汽车之家反爬很厉害,我不服气,所以就爬取了一下这个网址. 本片博客的目的是重点的分析定向爬虫的过程,希望读者能学会爬虫的分析流程. 一:爬虫的目标: 打开汽车之家的链接:https: ...
- Python 爬取大众点评 50 页数据,最好吃的成都火锅竟是它!
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 胡萝卜酱 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...
- java爬虫入门--用jsoup爬取汽车之家的新闻
概述 使用jsoup来进行网页数据爬取.jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuer ...
- Python爬取上交所一年大盘数据
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 半个码农2018 PS:如有需要Python学习资料的小伙伴可以加点 ...
- Python爬取某网站文档数据完整教程(附源码)
基本开发环境 (https://jq.qq.com/?_wv=1027&k=NofUEYzs) Python 3.6 Pycharm 相关模块的使用 (https://jq.qq.com/?_ ...
随机推荐
- unity---UI管理模块
UI管理器 任务: 1.所有面板的父类,2.UIMgr 所有UI控件都继承UIBehaviour 面板基类 找到相应空间 简化后 也存在问题:一个物体可以同时挂载两个组件 导致键相同,而值不同, 将值 ...
- 05-STL
Day01 笔记 1 STL概论 1.1 STL六大组件 1.1.1 容器.算法.迭代器.仿函数.适配器.空间配置器 1.2 STL优点 1.2.1 内建在C++编译器中,不需要安装额外内容 1.2. ...
- 第06组Alpha冲刺总结
目录 1. 基本情况 2. 思考与总结 2.1. 设想和目标 2. 计划 3. 资源 4. 变更管理 5. 设计/实现 6. 测试/发布 7. 团队的角色,管理,合作 8. 总结 3. 敏捷开发 1. ...
- 魔改了一下bootstrap-treeview组件,发布个NPM包体验一下
前言 之前在这篇文章 基于.NetCore开发博客项目 StarBlog - (8) 分类层级结构展示 中说到,我为了让文章分类列表支持层级结构,用了一个树形组件,不过这个组件太老了,使用的Boots ...
- 2021.03.13【NOIP提高A&B组】模拟 总结
T1 题目大意:从原点开始循环执行命令,问最后的位置 好吧这就是一道幼儿园的周期问题,模拟即可 #include<bits/stdc++.h> using namespace std; c ...
- Redis的使用(二)
一.redis简单应用 其实在写这个redis专题时我想了很久,我觉得redis没什么好说的,因为现在是个人都会用redis,但是我在写netty专题时发现,netty里面很多东西和概念有很多跟red ...
- nodeJS与MySQL实现分页数据以及倒序数据
大家在做项目时肯定会遇到列表类的数据,如果在前台一下子展示,速度肯定很慢,那么我们可以分页展示,比如说100条数据,每10条一页,在需要的时候加载一页,这样速度肯定会变快了.那么这里我给大家介绍如何在 ...
- Redis基础与性能调优
Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用. Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hyperloglogs等. ...
- IntelliJ IDEA 项目文件旁边都有0%classes,0% lines covered
IntelliJ IDEA 项目文件旁边都有0%classes,0% lines covered,解决方法:http://yayihouse.com/yayishuwu/chapter/2247
- .Net下极限生产力之efcore分表分库全自动化迁移CodeFirst
.Net下极限生产力之分表分库全自动化Migrations Code-First ## 介绍 本文ShardinfCore版本x.6.x.x+ 本期主角: - [`ShardingCore`](htt ...