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/?_ ...
随机推荐
- Jdbc从入门到入土
二刷jdbc 作者小结:从第一次大概几天快速刷完jdbc,到如今的二刷,才发现自己对jdbc的理解有点太浅.到学习javaweb是创建数据库层时的迷茫,到现在对这种设计模式的理解.我深有体会到了:实打 ...
- 138_Power BI&Power Pivot特殊半累加度量
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 半累加度量(semi-additive measure),在DAX建模分析的时候经常遇见:应用场景诸如银行存款. ...
- Fail2ban 命令详解 fail2ban-regex
fail2ban-regex是fail2ban提供的用来测试正则表达式的一个小工具,我们可以用它来测试正则表达式是否能够匹配到日志文件中的要禁止的IP行. fail2ban-regex默认情况下自动匹 ...
- 负载均衡之LVS的三种模式
模式一:D-NAT模式 原理:此模式类似NAT网络中,所以此网络内主机发到互联网上的数据包的源目的IP都是NAT路由的IP,在NAT路由上做了IP替换. 把客户端发来的数据的IP头的目的地址在负载均衡 ...
- [CSP-S 2019 Day2]Emiya家今天的饭
思路: 这种题目就考我们首先想到一个性质.这题其实容易想到:超限的菜最多只有一个,再加上这题有容斥那味,就枚举超限的菜然后dp就做完了. 推式子能力还是不行,要看题解. 式子还需要一个优化,就是废除冗 ...
- React项目中使用less/scss&全局样式/变量
使用create-react-app脚手架搭建初始化项目 > npm install -g create-react-app > npx create-react-app my-app c ...
- SAP 时区转换
DATA:l_tzone TYPE tzonref-tzone. "TIME ZONE DATA:l_timesp TYPE tzonref-tstamps."TIME ...
- 【Python基础教程】三种常用、效率最高的Python字符串拼接方法
python字符串连接的方法,一般有以下三种: **方法1:**直接通过加号(+)操作符连接website=& 39;python& 39;+& 39;tab& 39; ...
- NC16649 [NOIP2005]校门外的树
NC16649 [NOIP2005]校门外的树 题目 题目描述 某校大门外长度为 \(L\) 的马路上有一排树,每两棵相邻的树之间的间隔都是 \(1\) 米.我们可以把马路看成一个数轴,马路的一端在数 ...
- Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification理解
简介:这篇文章属于跨域无监督行人再识别,不同于大部分文章它使用了属性标注.旨在于能够学习到有属性语义与有区分力的身份特征的表达空间(TJ-AIDL),并能够转移到一个没有看到过的域. 贡献: 提出了一 ...