python爬取并分析淘宝商品信息

用python采集四大电商平台商品数据进行对比 大家早好、午好、晚好吖 ❤ ~ 阅读详情

python爬取并分析淘宝商品信息

  • 背景介绍
  • 一、模拟登陆
  • 二、爬取商品信息
  • 1. 定义相关参数2. 分析并定义正则3. 数据爬取
  • 三、简单数据分析
  • 1.导入库2.中文显示3.读取数据4.分析价格分布5.分析销售地分布6.词云分析
  • 写在最后

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:961562169

Tip:本文仅供学习与交流,切勿用于非法用途!!!

背景介绍

有个同学问我:“XXX,有没有办法搜集一下淘宝的商品信息啊,我想要做个统计”。于是乎,闲来无事的我,又开始琢磨起这事…


俗话说,实践出真知~
小的在这给大家安利一套《2020最新企业Pyhon项目实战》视频教程,点击此处即可获取,希望大家一起进步哦。

一、模拟登陆

兴致勃勃的我,冲进淘宝就准备一顿乱搜:


在搜索栏里填好关键词:“显卡”,小手轻快敲击着回车键(小样~看我的)
心情愉悦的我等待着返回满满的商品信息,结果苦苦的等待换了的却是302,于是我意外地来到了登陆界面。


情况基本就是这么个情况了…
然后我查了一下,随着淘宝反爬手段的不断加强,很多小伙伴应该已经发现,淘宝搜索功能是需要用户登陆的!

关于淘宝模拟登陆,有大大已经利用requests成功模拟登陆(感兴趣的小伙伴请往这边>>>requests登陆淘宝<<<)
这个方法得先分析淘宝登陆的各种请求,并模拟生成相应的参数,相对来说有一定的难度。于是我决定换一种思路,通过selenium+二维码的方式:

# 打开图片
def Openimg(img_location):
    img=Image.open(img_location)
    img.show()

# 登陆获取cookies
def Login():  
    driver = webdriver.PhantomJS() 
    driver.get('https://login.taobao.com/member/login.jhtml')
    try:
        driver.find_element_by_xpath('//*[@id="login"]/div[1]/i').click()
    except:
        pass
    time.sleep(3)
    # 执行JS获得canvas的二维码
    JS = 'return document.getElementsByTagName("canvas")[0].toDataURL("image/png");'
    im_info = driver.execute_script(JS) # 执行JS获取图片信息
    im_base64 = im_info.split(',')[1]  #拿到base64编码的图片信息
    im_bytes = base64.b64decode(im_base64)  #转为bytes类型
    time.sleep(2)
    with open('./login.png','wb') as f:
        f.write(im_bytes)
        f.close()
    t = threading.Thread(target=Openimg,args=('./login.png',))
    t.start()
    print("Logining...Please sweep the code!\n")
    while(True):
        c = driver.get_cookies()
        if len(c) > 20:   #登陆成功获取到cookies
            cookies = {}
            for i in range(len(c)):
                cookies[c[i]['name']] = c[i]['value']
            driver.close()
            print("Login in successfully!\n")
            return cookies
        time.sleep(1)

通过webdriver打开淘宝登陆界面,把二维码下载到本地并打开等待用户扫码(相应的元素大家通过浏览器的F12元素分析很容易就能找出)。待扫码成功后,将webdriver里的cookies转为DICT形式,并返回。(这里是为了后续requests爬取信息的时候使用)

二、爬取商品信息

当我拿到cookies之后,便能对商品信息进行爬取了。
(小样 ~我来啦)

1. 定义相关参数

定义相应的请求地址,请求头等等:

# 定义参数
headers = {'Host':'s.taobao.com',
           'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0',
           'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
           'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
           'Accept-Encoding':'gzip, deflate, br',
           'Connection':'keep-alive'}
list_url = 'http://s.taobao.com/search?q=%(key)s&ie=utf8&s=%(page)d'
12345678

2. 分析并定义正则

当请求得到HTML页面后,想要得到我们想要的数据就必须得对其进行提取,这里我选择了正则的方式。通过查看页面源码:


偷懒的我上面只标志了两个数据,不过其他也是类似的,于是得到以下正则:

# 正则模式
p_title = '"raw_title":"(.*?)"'       #标题
p_location = '"item_loc":"(.*?)"'    #销售地
p_sale = '"view_sales":"(.*?)人付款"' #销售量
p_comment = '"comment_count":"(.*?)"'#评论数
p_price = '"view_price":"(.*?)"'     #销售价格
p_nid = '"nid":"(.*?)"'              #商品唯一ID
p_img = '"pic_url":"(.*?)"'          #图片URL
12345678

(ps.聪明的小伙伴应该已经发现了,其实商品信息是被保存在了g_page_config变量里面,所以我们也可以先提取这个变量(一个字典),然后再读取数据,也可!)

3. 数据爬取

完事具备,只欠东风。于是,东风来了:

# 数据爬取
key = input('请输入关键字:') # 商品的关键词
N = 20 # 爬取的页数 
data = []
cookies = Login()
for i in range(N):
    try:
        page = i*44
        url = list_url%{'key':key,'page':page}
        res = requests.get(url,headers=headers,cookies=cookies)
        html = res.text
        title = re.findall(p_title,html)
        location = re.findall(p_location,html)
        sale = re.findall(p_sale,html)
        comment = re.findall(p_comment,html)
        price = re.findall(p_price,html)
        nid = re.findall(p_nid,html)
        img = re.findall(p_img,html)
        for j in range(len(title)):
            data.append([title[j],location[j],sale[j],comment[j],price[j],nid[j],img[j]])
        print('-------Page%s complete!--------\n\n'%(i+1))
        time.sleep(3)
    except:
        pass
data = pd.DataFrame(data,columns=['title','location','sale','comment','price','nid','img'])
data.to_csv('%s.csv'%key,encoding='utf-8',index=False)

上面代码爬取20也商品信息,并将其保存在本地的csv文件中,效果是这样的:

三、简单数据分析

有了数据,放着岂不是浪费,我可是社会主义好青年,怎能做这种事? 那么,就让我们来简单看看这些数据叭:
(当然,数据量小,仅供娱乐参考)

1.导入库

# 导入相关库
import jieba
import operator
import pandas as pd
from wordcloud import WordCloud
from matplotlib import pyplot as plt

相应库的安装方法(其实基本都能通过pip解决):

  • jieba
  • pandas
  • wordcloud
  • matplotlib

2.中文显示

# matplotlib中文显示
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

不设置可能出现中文乱码等闹心的情况哦~

3.读取数据

# 读取数据
key = '显卡'
data = pd.read_csv('%s.csv'%key,encoding='utf-8',engine='python')

4.分析价格分布

# 价格分布
plt.figure(figsize=(16,9))
plt.hist(data['price'],bins=20,alpha=0.6)
plt.title('价格频率分布直方图')
plt.xlabel('价格')
plt.ylabel('频数')
plt.savefig('价格分布.png')

价格频率分布直方图:

5.分析销售地分布

# 销售地分布
group_data = list(data.groupby('location'))
loc_num = {}
for i in range(len(group_data)):
    loc_num[group_data[i][0]] = len(group_data[i][1])
plt.figure(figsize=(19,9))
plt.title('销售地')
plt.scatter(list(loc_num.keys())[:20],list(loc_num.values())[:20],color='r')
plt.plot(list(loc_num.keys())[:20],list(loc_num.values())[:20])
plt.savefig('销售地.png')
sorted_loc_num = sorted(loc_num.items(), key=operator.itemgetter(1),reverse=True)#排序
loc_num_10 = sorted_loc_num[:10]  #取前10
loc_10 = []
num_10 = []
for i in range(10):
    loc_10.append(loc_num_10[i][0])
    num_10.append(loc_num_10[i][1])
plt.figure(figsize=(16,9))
plt.title('销售地TOP10')
plt.bar(loc_10,num_10,facecolor = 'lightskyblue',edgecolor = 'white')
plt.savefig('销售地TOP10.png')

销售地分布:


销售地TOP10:

6.词云分析

# 制作词云
content = ''
for i in range(len(data)):
    content += data['title'][i]
wl = jieba.cut(content,cut_all=True)
wl_space_split = ' '.join(wl)
wc = WordCloud('simhei.ttf',
               background_color='white', # 背景颜色
               width=1000,
               height=600,).generate(wl_space_split)
wc.to_file('%s.png'%key)

淘宝商品”显卡“的词云:

写在最后

最后,要说点啥呢~

 

使用Python爬取淘宝两千款套套 各位同学们,好久没写原创技术文章了,最近有些忙,所以进度很慢,给大家道个歉。 > 警告:本教程仅用作学习交流,请勿用作商业盈利,违者后果自负!如本文有侵犯任何组织集团公司的隐私或利益,请告知联系猪哥删除!!! 一、淘宝登录复习 前面我们已经介绍过了如何使用requests库登录淘宝,收... 阅读详情

相关推荐

python大数据可视化分析淘宝商品,开专卖店不行啊_基于python的淘宝数码产品的数据分析与可视化

shop_num[‘其他’] = 176 - shop_num[‘专卖店’] - shop_num[‘专营店’] - shop_num[‘旗舰店’]v = [shop_num[‘旗舰店’], shop_num[‘专卖店’], shop_num[‘其他’], shop_num[‘专卖店’]]v = [shop_num[‘旗舰店’], shop_num[‘专卖店’], shop_num[‘其他’], shop_num[‘专卖店’]]q=’ + goods # 初始搜索地址。

2301_82242724的博客 1043

python爬取淘宝商品数据信息

以上是对淘宝商品爬虫的分析,最主要的是用re.findall('g_page_config = (\{.+\})', data)[0]把数据提取出来,用requests的库就可以实现以上功能。

youmianzhou的博客 5231

Python爬虫+selenium——爬取淘宝商品信息和数据分析

Python+selenium爬取淘宝商品,1.驱动浏览器访问淘宝网页,2.进行搜索,扫码登录,3.页面滚动,获取数据

qq_60479747的博客 4463

Python爬取淘宝商品信息

爬虫原理爬虫需要做如下事情:1. 模拟对服务端的Request请求;2. 接收Response 内容并解析、提取所需信息;简单来说,就是模仿浏览器浏览网页信息。实战讲解在淘宝首页输入商品数据,搜索出来的商品信息是ajax动态加载出来的,这样的信息再源代码的是找不到,于是爬取这些信息可以选择selenium或者找到这个js文件进行解析,本文这次是抓到这个js文件进行解析的,首先打开淘宝页面,本文...

Gavinmiaoc的博客 1万+

【python爬虫实战】Python 抓取淘宝商品信息

本项目实现了一个基于Python的淘宝商品数据爬取与分析系统,通过Selenium模拟浏览器行为突破淘宝反爬机制,获取笔记本电脑等商品的详细信息(价格、销量、评价等),并利用数据可视化技术挖掘市场趋势。 分析结果显示:中端笔记本(2000-4000元)市场占比最高,销量与价格呈负相关;消费者评价中"速度""外观""轻薄"是关注重点,积极评价占比75.7%。项目还包含商品规格偏好分析,为商家提供产品优化依据。系统支持爬虫优化、情感分析增强等功能拓展,

2503_91057718的博客 2633

看不懂别做爬虫-----python scrapy爬取淘宝

淘宝商品数据爬取 1.网页分析 做爬虫第一步当然是打开网页进行分析 首先打开网站以后 发现在显示的位置 没有我们想要的数据 那我们就 使用查找就可以 ctrl + f 复制一个商品的信息 看看网页源代码中有没有 现在发现数据其实是在源代码中 中有一个字典 我们只需要取出这个字典 里面的东西就都可以取出了 2.创建项目 我们要使用scrapy框架 没有安装的自行百度安装 创建项目 # scrapy startproject 项目名称 scrapy startproject taobao 创建爬虫 # s

weixin_44173603的博客 4154

Python实战6

Python实战6 目标:爬取淘宝某宝贝的销售量 思路:打开淘宝,搜索目标宝贝关键词, 然后观察网址去掉没用的后缀: https://s.taobao.com/search?q=零基础入门学python&amp;imgfile=&amp;js=1&amp;stats_click=search_radio_all%3A1&amp;initiative_id=staobaoz_20181115&amp...

qq_18601463的博客 482

使用Python爬取淘宝热销商品并进行数据分析

本文介绍了利用Python爬取淘宝热销商品数据并进行全面分析的技术方案。通过Selenium等工具动态获取"蓝牙耳机"等商品数据,使用Pandas进行清洗处理,再借助Matplotlib和WordCloud进行可视化分析。研究发现:价格集中在50-200元区间,销量呈长尾分布,关键词多为"无线""降噪"等,发货地集中在华南地区。该方案可扩展为多平台对比分析和评论情感分析,但需注意遵守淘宝爬虫规范。该技术流程为电商选品和营销决策提供了有效的数据支持。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 703

python爬取商品信息_python爬取并分析淘宝商品信息

python爬取并分析淘宝商品信息Tip:本文仅供学习与交流,切勿用于非法用途!!!背景介绍有个同学问我:“XXX,有没有办法搜集一下淘宝的商品信息啊,我想要做个统计”。于是乎,闲来无事的我,又开始琢磨起这事…俗话说,实践出真知~小的在这给大家安利一套《2020最新企业Pyhon项目实战》视频教程,点击此处即可获取,希望大家一起进步哦。一、模拟登陆兴致勃勃的我,冲进淘宝就准备一顿乱搜:在搜索栏里填...

weixin_39856709的博客 1876

从零开始:使用英伟达nx开发板部署目标检测算法的全过程

英伟达nx开发板烧录、依赖安装、开发板联网

weixin_51192760的博客 3762

2025数学建模国赛A题1-4问详解(论文+完整代码)

本文介绍了数学建模国赛A题的解题思路,重点分析了三维遮蔽模型的建立和运动学代码实现。相比第一题,第二题增加了未知参数求解,需要采用遗传算法等非线性优化方法。文章强调该模型由专业团队原创开发,代码可运行,并提醒参赛者警惕市场上的保奖班现象。整体内容聚焦于竞赛解题技巧和原创性保证。

Eloveeeee的博客 2799

Python爬取淘宝商品信息并对其进行数据分析

上一篇文章https://www.jianshu.com/p/9683898a4237 已经爬取了淘宝商品信息了现在对其进行数据分析 ####对商品标题进行文本分析 使用jieba分词器,对raw_title列每一个商品标题进行分词,通过停用表StopWords对标题进行去除停用词。因为下面要统计每个词语的个数,所以 为了准确性,在这里对过滤后的数据 title_clean 中的每个list的元素...

人生苦短, 还不用Python? 7832

Docker 与容器技术的未来:从 OCI 标准到 eBPF 的演进

OCI 的核心目标是创建一个开放的、厂商中立的容器技术标准。这意味着,只要一个容器镜像符合 OCI 镜像格式规范,它就可以在任何符合 OCI 运行时规范的容器运行时上运行。eBPF 是一种革命性的技术,它允许在 Linux 内核中安全地运行沙盒程序,而无需修改内核源代码或加载内核模块。这些程序可以注册到内核中的各种事件点(如网络包到达、系统调用、函数调用/返回),并在事件发生时执行自定义逻辑。核心思想是:在不将数据复制到用户空间的情况下,程序可以直接在内核中处理数据,极大地提高了效率和性能。

专栏 1383

python爬取数据分析淘宝商品_python爬取并分析淘宝商品信息

python爬取并分析淘宝商品信息Tip:本文仅供学习与交流,切勿用于非法用途!!!背景介绍有个同学问我:“XXX,有没有办法搜集一下淘宝的商品信息啊,我想要做个统计”。于是乎,闲来无事的我,又开始琢磨起这事…俗话说,实践出真知~小的在这给大家安利一套《2020最新企业Pyhon项目实战》视频教程,点击此处即可获取,希望大家一起进步哦。一、模拟登陆兴致勃勃的我,冲进淘宝就准备一顿乱搜:在搜索栏里填...

weixin_39980002的博客 1052

解决VMWare ESXi PCIe直通显卡导致的DevicePowerOn启动故障

本文详细解析了VMWare ESXi中PCIe直通显卡导致的DevicePowerOn启动故障,重点分析了MMIO空间不足的根本原因,并提供了完整的解决方案。通过修改.vmx文件中的关键参数,如pciPassthru.64bitMMIOSizeGB,可以有效解决显存分配问题。文章还涵盖了硬件兼容性检查、性能调优技巧及大规模部署的实战案例,帮助用户彻底解决显卡直通难题。

weixin_42537919的博客 575

Windows非分页缓冲池内存泄漏实战:PoolMon与RAMMap高效排查指南

本文详细介绍了Windows系统中非分页缓冲池内存泄漏的实战排查方法。当系统出现卡顿且内存占用异常增长时,通过RAMMap工具快速定位非分页缓冲池异常,并利用PoolMon监控内核内存分配标签,精准锁定泄漏源。文章提供了从确认症状、安装工具到使用findstr命令溯源驱动文件的完整五步排查流程,并总结了常见泄漏标签与解决方案,帮助用户高效解决深层系统内存问题。

weixin_28455801的博客 1011

python bytes base64_python爬取并分析淘宝商品信息

python爬取并分析淘宝商品信息背景介绍一、模拟登陆二、爬取商品信息1. 定义相关参数2. 分析并定义正则3. 数据爬取三、简单数据分析1.导入库2.中文显示3.读取数据4.分析价格分布5.分析销售地分布6.词云分析写在最后私信小编01即可获取大量Python学习资料Tip:本文仅供学习与交流,切勿用于非法用途!!!背景介绍有个同学问我:“XXX,有没有办法搜集一下淘宝的商品信息啊,我想要做个统...

weixin_39752215的博客 108

LVGL开发新选择:深度对比NXP GUI Guider与SquareLine Studio,免费版够用吗?

本文深度对比了LVGL开发中两款主流工具NXP GUI Guider与SquareLine Studio的核心差异,包括功能定位、设计能力、代码生成质量和硬件适配等方面。针对不同项目需求,分析了免费版工具的适用性,帮助开发者根据预算和功能需求做出明智选择。特别关注了GUI设计工具在嵌入式开发中的实际应用效果。

weixin_26976635的博客 429

Selenium实战-模拟登录淘宝并爬取商品信息

现在很多网站要获取数据都得要先登录。Selenium是一个用于Web应用程序测试的自动化工具。它直接运行在浏览器中,模拟真实用户的操作。本文介绍如何通过Selenium来登录淘宝并自动爬取商品信息。

学而思(xiejava的blog) 1万+

从指令到坐标:深度解析307系列基站定位的AT指令实战与排错

本文深度解析了ML307系列模组基站定位的AT指令实战应用与排错方法。重点剖析了AT+MLBSCFG和AT+MLBSLOC两条核心指令的配置、执行流程及异步响应机制,并针对高德与OneOs两种主流定位服务提供了完整的配置指南。文章结合常见错误码(如126、127)和硬件注意事项,分享了确保定位成功的实战经验与稳健的程序框架。

weixin_29057695的博客 488

动态对抗Zygisk-IL2CppDumper:Unity游戏安全新策略

本文深入探讨了对抗Zygisk-IL2CppDumper攻击的Unity游戏安全新策略。通过实时内存监控、动态混淆技术和异常行为检测体系,有效防止关键代码被动态提取。文章详细介绍了内存指纹系统、运行时混淆方案和五维特征模型等实用防御手段,帮助开发者提升游戏安全性。

weixin_29325955的博客 306

Python爬虫使用selenium爬取淘宝商品信息并保存到MongoDB中

一、前期准备 需要首先安装好以下的软件 1.chrome浏览器 2.chromedriver (和浏览器的版本要对应) 3.selenium浏览器自动化测试框架 4.MongoDB数据库 (可以的话安装可视化工具Robo 3T) Mac电脑下没有安装好的话可以看我的其他博客,我使用的IDE是Pycharm,python版本为3.7,chrome浏览器版本版本 75.0.3770.100...

燎原 1730

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

淘宝口红爬虫入门+数据分析(超详细)

标题

weixin_39459398的博客 5887

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

python爬取京东商品信息代码_python_爬虫_爬取京东商品信息

一爬取京东商品信息代码:import requests# url = "https://item.jd.com/2967929.html"url = "https://item.jd.com/100011585270.html"try:r = requests.get(url)r.raise_for_status()r.encoding = r.apparent_encodingprint(r.t...

weixin_39785165的博客 873

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: 用python写截屏小工具
下一篇: Python采集12星座信息,分析出12星座的各个特点
Python_sn
博客等级 码龄6年 324粉丝 290原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值