1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数据分析实战二:爬取淘宝商品详情页进行分析

数据分析实战二:爬取淘宝商品详情页进行分析

时间:2023-09-21 20:19:58

相关推荐

数据分析实战二:爬取淘宝商品详情页进行分析

对淘宝商品信息进行数据分析

项目流程:

1、数据获取

2、数据清洗

3、数据分析与可视化

数据获取(爬虫)

淘宝数据是通过动态加载的方式显示的,所以采用selenium模拟浏览器操作爬取商品页详情信息。

爬取关键词为零食

打开淘宝搜索页,输入关键词后观察前后几页的网址变化,会发现一个规律

url=“/search?ie=utf8&initiative_id=staobaoz_0920&stats_click=search_radio_all%3A1&js=1&imgfile=&q=%E9%9B%B6%E9%A3%9F&suggest=0_1&_input_charset=utf-8&wq=LINGSHI&suggest_query=LINGSHI&source=suggest&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=0”,后面几页接着是44,88。。。。。

所以我们爬取url可以寻找规律进行爬取(我尝试过用selenium里面的ActionsChains().click()模拟自动翻页,但是爬取过后的数据是重复的)

# -*- coding: utf-8 -*-from pyquery import PyQuery as pqimport timeimport csvfrom selenium import webdriverfrom mon.keys import Keysfrom mon.action_chains import ActionChainsdef get_text(page_source):html = page_sourcedoc = pq(html)items = doc('#mainsrp-itemlist .items .item').items()for item in items:product = {'image': item.find('.pic .img').attr('data-src'),'price': item.find('.price').text(),'deal': item.find('.deal-cnt').text(),'title': item.find('.title').text(),'shop': item.find('.shop').text(),'location': item.find('.location').text()}yield product.values()if __name__=='__main__':file=open("taobao.csv","w",encoding='utf-8',newline="")f=csv.writer(file)f.writerow(['image','price','deal','title','shop','location'])#爬取的规模不是很大,所以就没有实现模拟登录,直接先打开淘宝界面,扫码登录url = '/search'brown=webdriver.Chrome()url="/search"brown.get(url)time.sleep(10)for i in range(0,100):try:url="/search?ie=utf8&initiative_id=staobaoz_0920&stats_click=search_radio_all%3A1&js=1&imgfile=&q=%E9%9B%B6%E9%A3%9F&suggest=0_1&_input_charset=utf-8&wq=LINGSHI&suggest_query=LINGSHI&source=suggest&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s="+str(i*44)brown.get(url)for t in get_text(brown.page_source):f.writerow(t)except:print('爬取完成')time.sleep(1)file.close()

爬取之后的结果如图所示(总共爬取了4404条数据)

数据清洗

读取数据,并观察数据(jupyter noteboo编译器)

import pandas as pddata=pd.read_csv("taobao.csv")data.head()

清洗目标(以第一条数据为例)

import pandas as pddata=pd.read_csv(r"taobao.csv")data.head()#处理pricedata['price']=data['price'].map(lambda x:x.replace('¥',""))#处理dealdata['deal']=data['deal'].map(lambda x:x.split("万")[0])for i in range(len(data)):try:float(data.loc[i,'deal'])except:data.loc[i,'deal']=float(re.findall("(\d+)",data.loc[i,'deal'])[0])/10000#处理locationdata['province']=data['location'].map(lambda x:x.split(" ")[0])for i in range(len(data)):location=data.loc[i,'location'].split(" ")if len(location)>1:data.loc[i,'city']=location[1]else:data.loc[i,'city']=location[0]data.drop('location',axis=1,inplace=True)

清洗过后的数据如下图所示

数据分析与可视化

1、对商品标题进行文本分析,观察不同类别的零食销售

商品标题进行词频分析和可视化(tableau)

import jiebafrom collections import Counterstopwords = [line.strip() for line in open(r"中文停用词.txt", 'r', encoding='utf-8').readlines()]word=Counter(jieba.cut_for_search(",".join(data['title'].values)))new_word={}for i,j in word.items():if i not in stopwords:new_word[i]=jword=Counter(new_word)#word.most_common(30)result=dict(word.most_common(30))title_sales=dict(zip(data['title'].values,data['deal'].values))sales=[]for k in result.keys():count=0for i,j in title_sales.items():if k in i:count+=float(title_sales[i])sales.append(count)

词频统计结果

1)可以看到销售最高的主要是休闲食品,并且休闲关键词出现的次数较多,说明有很多家店铺title包含休闲食品

2)顾客在购买零食更加青睐于整箱购买,并且糕点的销售量最高,饼干和坚果次之

3) 在口味上青睐于香辣、麻辣和卤味

2、不同价格之间的销售分布

观察几个价格分布区间,确定对价格的处理方法

#根据价格对销售量进行分箱处理for i in range(len(data)):if data.loc[i,"price"]<=100:data.loc[i,"type"]=1elif (data.loc[i,"price"]>100) & (data.loc[i,"price"]<=200):data.loc[i,"type"]=2elif (data.loc[i,"price"]>200) & (data.loc[i,"price"]<=300):data.loc[i,"type"]=3elif (data.loc[i,"price"]>300) & (data.loc[i,"price"]<=400):data.loc[i,"type"]=4else:data.loc[i,"type"]=5data1=data[data['type']==1]#求出在区间0~100之间的不同商铺之间的销售分布data1.groupby("shop")['deal'].sum().sort_values(ascending=False)

这里展示了销售量top20的店铺分析

1) 可以得出销售量与价格成近似反比,基本上销售价格最低,销售量约高

当然,有可能存在天猫超市等零食店具有满减的优惠活动,促进消费者进行刺激消费

2)像天猫超市,三只松鼠,百草味,良品铺子等为消费者所熟知的店铺,其商品价格分布较广,但其销售量和价格依旧成反比,消费者普遍接受的零食价格还是主要集中在0~100

3)

3、不同城市之间的销售量和价格分析图

1)销售量突破100万的城市为上海,安徽,浙江,江苏,福建,湖南,湖北,河南等城市,占据零食店铺的半壁江山,其中上海的零食销售总额达到972.5万,平均价格达到34.4元

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。