四、代码展示分析
========================================================================
1、爬虫部分
1.1 代码展示
import requests # 发送网络请求
import parsel # 解析数据
import csv # 保存数据
csv_dcd = open(‘dcd.csv’, mode=‘a’, encoding=‘utf-8’, newline=‘’)
csv_write = csv.writer(csv_dcd)
csv_write.writerow([‘品牌’, ‘车龄’, ‘里程(万公里)’, ‘城市’, ‘认证’, ‘售价(万元)’, ‘原价(万元)’, ‘链接’])
for page in range(1, 168):
url = f’https://www.dongchedi.com/usedcar/x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x?sh_city_name=%E5%85%A8%E5%9B%BD&page={page}’
html_data = requests.get(url).text
selector = parsel.Selector(html_data)
lis = selector.css(‘#__next > div:nth-child(2) > div.new-main.new > div > div > div.wrap > ul li’)
for li in lis:
title = li.css(‘a dl dt p::text’).get()
info = li.css(‘a dl dd:nth-child(2)::text’).getall()
info_str = ‘’.join(info)
info_list = info_str.split(‘|’)
car_age = info_list[0]
mileage = info_list[1].replace(‘万公里’, ‘’)
city = info_list[2].strip()
link = ‘https://www.dongchedi.com’ + li.css(‘a::attr(href)’).get()
dds = li.css(‘a dl dd’)
if len(dds) == 4:
dcd_auth = li.css(‘a dl dd:nth-child(3) span::text’).get()
price = li.css(‘a dl dd:nth-child(4)::text’).get()
original_price = li.css(‘a dl dd:nth-child(5)::text’).get()
else:
dcd_auth = ‘无认证’
price = li.css(‘a dl dd:nth-child(3)::text’).get()
original_price = li.css(‘a dl dd:nth-child(4)::text’).get()
price = price.replace(‘万’, ‘’)
original_price = original_price.replace('新车含税价: ', ‘’).replace(‘万’, ‘’)
print(title, car_age, mileage, city, dcd_auth, price, original_price, link)
csv_write.writerow([title, car_age, mileage, city, dcd_auth, price, original_price, link])
csv_dcd.close()
2、效果展示
2.1 爬取中
用pycharm打印出来有点乱码,它这个地方是有字体加密了,加密的部分就不显示,解密今天就先不分享了。
2.2 保存的数据
这是保存在Excel里面的数据,等下分析就分析这里面保存好的数据。
3、数据分析部分
3.1 导入模块
import pandas as pd
from pyecharts.charts import *
from pyecharts.commons.utils import JsCode
from pyecharts import options as opts
pyecharts 没有的话需要安装一下
3.2 Pandas数据处理
3.21 读取数据
df = pd.read_csv(‘dcd.csv’, encoding = ‘utf-8’)
df.head()
3.22 查看表格数据描述
df.describe()
一共有10000条数据
3.23 查看表格是否有数据缺失
df.isnull().sum()
3.3 Pyecharts可视化
3.31 Pyecharts可视化
counts = df.groupby(‘城市’)[‘品牌’].count().sort_values(ascending=False).head(20)
bar=(
Bar(init_opts=opts.InitOpts(height=‘500px’,width=‘1000px’,theme=‘dark’))
.add_xaxis(counts.index.tolist())
.add_yaxis(
‘城市二手车数量’,
counts.values.tolist(),
label_opts=opts.LabelOpts(is_show=True,position=‘top’),
itemstyle_opts=opts.ItemStyleOpts(
color=JsCode(“”"new echarts.graphic.LinearGradient(
0, 0, 0, 1,[{offset: 0,color: ‘rgb(255,99,71)’}, {offset: 1,color: ‘rgb(32,178,170)’}])
“”"
)
)
)
.set_global_opts(
title_opts=opts.TitleOpts(
title=‘各个城市二手车数量柱状图’),
xaxis_opts=opts.AxisOpts(name=‘书籍名称’,
type_=‘category’,
axislabel_opts=opts.LabelOpts(rotate=90),
),
yaxis_opts=opts.AxisOpts(
name=‘数量’,
min_=0,
max_=1400.0,
splitline_opts=opts.SplitLineOpts(is_show=True,linestyle_opts=opts.LineStyleOpts(type_=‘dash’))
),
tooltip_opts=opts.TooltipOpts(trigger=‘axis’,axis_pointer_type=‘cross’)
)
.set_series_opts(
markline_opts=opts.MarkLineOpts(
data=[
opts.MarkLineItem(type_=‘average’,name=‘均值’),
opts.MarkLineItem(type_=‘max’,name=‘最大值’),
opts.MarkLineItem(type_=‘min’,name=‘最小值’),
]
)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
97de0dc0438ec5.png#pic_center)
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。