用Python爬取自主品牌汽车,看看国产汽车究竟长什么样?(上)
有态度地学习
就在上周,公司的XX总过来和我说,小伙子要好好工作,多学点东西,不要就想着hun,工作的时候多动动脑子,提高工作效率,我的内心...
好吧,那就写点东西。刚好公司是做AI交通的,需要汽车标签分类。与我这个前主机厂工程师相比,公司里的人或许对汽车分类并不是很清楚。冥冥之中,自有天意,还是与汽车息息相关。那么作为一名前主机厂工程师和FSCer,就有必要来科普一波。这里来一波学弟学妹们今年的成果,小八帅照一张。恭喜他们在今年取得全国第14名的好成绩。
就如昨日IG夺冠一般,LPL终于有了一个属于自己的S赛冠军,LOL最高的荣誉。车队也是在今年,建队的第八个年头,获得了一个不错的成绩,可谓八年磨一剑。翻过这座山,他们就会听到你们的故事,加油!!!
说到汽车,很多人对国外品牌比起国内品牌,会有更多的了解,谁叫国产汽车不争气。当然现在的自主品牌也在不断缩小与国外品牌的差距,新能源也算是一个突破口,弯道超车不是梦。
所以本次收集的数据,都是自主品牌汽车,外资合资通通不要。首先去中国政府网来看看今年上半年自主品牌汽车的销量,这里面不单单包含乘用车。所以你会发现,新能源汽车老大—比亚迪,客车老大—宇通,商用车老大—北汽福田,以及皮尺部—众泰并不在榜上。前任东家也在榜上,倍感欣慰,熟悉我的朋友应该知道...
新能源汽车与燃油车无非就是动力方面有区别,车型没什么区别,所以就以爬取燃油车为例。这里插一句,其实车企研发一辆新款车型不容易的,一般需要耗资上亿,在研发的时候就会考虑燃油,混动,纯电动三种类型的。现在所谓的电动车,好多都是是车企的热销车型改变动力形式而已(因为电动车不好卖,不能专门去研发一波吧,亏本的生意~)。接下来就一个个来说啦!!!
1. 上汽
上汽的自主品牌有荣威,名爵,大通,五菱,宝骏。上汽算是很多汽车人的奋斗目标,优越的地理位置,相对不错的薪水。不过比起互联网,还是捉襟见肘。
比如来看看下面这些数据。2017年上汽的全年营收是 8579.78 亿,净利润 344.1 亿。2017年腾讯的全年营收是 2377.6 亿元,净利润 715 亿元。上汽利润率 4% ,腾讯利润率 30% ,只能说都是行业巨头,差距咋这么大呢?
上汽荣威
import os
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = 'http://www.roewe.com.cn/htmlinclude/header.html'
response = requests.get(url=url, headers=headers)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
Car_Type = ['Car','SUV']
for i in [1, 2]:
folder_path = "F:/Car/SAIC Motor/roewe/" + Car_Type[i - 1] + "/"
os.makedirs(folder_path)
ul = (soup.find_all(class_='clearfix ul' + str(i)))[0]
img = ul.find_all(name='img')
for item in img:
url = 'http://www.roewe.com.cn' + item['src']
r = requests.get(url)
picture_name = url.replace('http://www.roewe.com.cn/images/headernav/', '')
with open('F:\Car\SAIC Motor\roewe\' + Car_Type[i-1] + "\" + picture_name, 'wb') as f:
f.write(r.content)
f.close()
print(url)
print('nn')
{ 左右滑动切换图片 }
上汽名爵
import os
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = 'http://www.saicmg.com/'
response = requests.get(url=url, headers=headers)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
ul = soup.find_all(class_='se_tu')[0]
img = ul.find_all(class_='img100')[0:6]
folder_path = "F:/Car/SAIC Motor/mg/"
os.makedirs(folder_path)
for item in img:
url = 'http://www.saicmg.com/' + item['src']
r = requests.get(url)
picture_name = url.replace('http://www.saicmg.com/images/', '')
with open('F:\Car\SAIC Motor\mg\' + picture_name, 'wb') as f:
f.write(r.content)
f.close()
print(url)
{ 左右滑动切换图片 }
上汽大通
import os
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = 'https://www.saicmaxus.com/'
response = requests.get(url=url, headers=headers)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
ul = soup.find_all(class_='item show clearfix')
Car_Type = ['MPV', 'SUV', 'PICK UP', 'MPV-1', 'MPV-2']
num = 0
for a in ul[:5]:
num += 1
folder_path = "F:/Car/SAIC Motor/maxus/" + Car_Type[num - 1] + "/"
os.makedirs(folder_path)
img = a.find_all(name='img')
for item in img:
url = 'https://www.saicmaxus.com/' + item['src']
r = requests.get(url)
picture_name = url.replace('https://www.saicmaxus.com//static/series/', '').replace('https://www.saicmaxus.com//uploads/month_1712/20171229075', '')
with open('F:\Car\SAIC Motor\maxus\' + Car_Type[num-1] + "\" + picture_name, 'wb') as f:
f.write(r.content)
f.close()
print(url)
{ 左右滑动切换图片 }
上汽宝骏五菱
import os
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = 'https://www.sgmw.com.cn/'
response = requests.get(url=url, headers=headers)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
ul = soup.find_all(class_='det_box')
Car_Type = ['SUV', 'MPV', 'Car', 'Mini-Car']
num = 0
for i in range(len(ul)):
num += 1
folder_path = "F:/Car/SAIC Motor/sgmw/" + Car_Type[num - 1] + "/"
os.makedirs(folder_path)
p = ul[i]
box = p.find_all(class_='itembox')
for j in range(len(box)):
g = (box[j].find_all(class_='item_img'))[0]
item = (g.find_all(name='img'))[0]
url = 'https://www.sgmw.com.cn/' + item['src']
r = requests.get(url)
picture_name = url.replace('https://www.sgmw.com.cn/images/childnav/', '').replace('https://www.sgmw.com.cn/images/', '').replace('https://www.sgmw.com.cn/hy310w/images/310w/', '').replace('510/', '').replace('s3/', '')
with open('F:\Car\SAIC Motor\sgmw\' + Car_Type[num - 1] + "\" + picture_name, 'wb') as f:
f.write(r.content)
f.close()
print(url)
{ 左右滑动切换图片 }
2. 长安
长安作为自主品牌的老大哥,现如今的奇瑞已经濒临出售的局面,这个老大哥又该何去何从呢?
import os
import re
import requests
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = 'http://www.changan.com.cn/cache/car_json.js'
response = requests.get(url=url, headers=headers)
res = response.text
result = re.findall('"car_model_photo":"(.*?)","car_model_price_name"', res, re.S)
Car_Type = ['Car', 'SUV', 'MPV']
for i in range(3):
folder_path = "F:/Car/CHANGAN/" + Car_Type[i] + "/"
os.makedirs(folder_path)
for j in range(16):
url = 'http:' + result[j].replace('\', '')
r = requests.get(url)
picture_name = url.replace('http://www.changan.com.cn/uploads/car_model_photo/', '')
if j < 9:
with open('F:\Car\CHANGAN\Car\' + picture_name, 'wb') as f:
f.write(r.content)
elif j < 15:
with open('F:\Car\CHANGAN\SUV\' + picture_name, 'wb') as f:
f.write(r.content)
else:
with open('F:\Car\CHANGAN\MPV\' + picture_name, 'wb') as f:
f.write(r.content)
f.close()
print(url)
{ 左右滑动切换图片 }
3. 吉利汽车
吉利自从收购了沃尔沃后,便飞速发展,成为世界500强。一方面,是从沃尔沃学到了很多东西,设计、制造、采购、营销等。另一方面,也是离不开政策的支持,比如你看看它现在可是戴姆勒的第一大股东,吉利哪里来那么多钱,显而易见~
import os
import requests
from lxml import etree
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = 'http://www.geely.com/?mz_ca=2071413&mz_sp=7D3ws&mz_kw=8398784&mz_sb=1'
response = requests.get(url=url, headers=headers)
res = response.text
html = etree.HTML(response.text)
result = html.xpath('//div[@class="car"]/img/@src')
Car_Type = ['Car', 'SUV']
for i in range(2):
folder_path = "F:/Car/GEELY_AUTO/" + Car_Type[i] + "/"
os.makedirs(folder_path)
for j in range(17):
url = result[j]
r = requests.get(url)
picture_name = url.replace('https://dm30webimages.geely.com/GeelyOfficial/Files/Car/CarType/', '')
if 0 < j < 4 or 6 < j < 12 or j == 16:
with open('F:\Car\GEELY_AUTO\Car\' + picture_name, 'wb') as f:
f.write(r.content)
elif 3 < j < 7 or 11 < j < 16:
with open('F:\Car\GEELY_AUTO\SUV\' + picture_name, 'wb') as f:
f.write(r.content)
else:
continue
f.close()
print(url)
未完待续,还有七个品牌,待我喝口水先~
- 文本溢出-超出文本显示为省略号
- 征信区块链解决方案探索(Hyperledger)
- 概率论12 矩与矩生成函数
- Python的hasattr() getattr() setattr() 函数使用方法详解
- 查找字符串中出现最多的字符
- C++工程中常用的宏定义(#define)
- 面向对象系列讲解—认识对象
- 基于 KIF 的 iOS UI 自动化测试和持续集成
- 面向对象系列讲解—面向对象的含义&工厂模式
- 庖丁解牛看委托和事件(续)
- ReactiveCocoa中潜在的内存泄漏及解决方案
- 面向对象系列讲解——混合模式
- 火力全开——仿造Baidu简单实现基于Lucene.net的全文检索的功能
- Go实战--实现简单的restful api
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 使用HTMLTestRunner实现HTML测试报告
- Jmeter五步实现性能测试
- 测试工程师必须要掌握的linux命令
- Python之pip使用详解|附第三方库安装总结
- Python基础之数据类型详解
- 编码效率提升之Pycharm活动模板(Live Templates )
- crictl调试Kubernetes节点
- leetcode哈希表之好数对的数目
- Python处理excel的强大工具-openpyxl
- Pycharm最高效的快捷键集合
- 关于Python循环,看这一篇就够了
- Python新手常见错误汇总|附代码检查清单
- 入门快速安装ElasticSearch
- Kubernetes强制删除Terminating的ns
- 如何使用慢查询快速定位执行慢的 SQL?