淘宝商品数据爬取并分析数据

   日期:2024-11-07    作者:caijiyuan 移动:http://gzhdwind.xhstdz.com/quote/2470.html

淘宝商品数据爬取并分析数据

对电商来说,抓取某些数据,再进行分析,可以有效地反映出数据在某个区间内变化情况。数据受某些因素而发生巨大的影响,也可以借助分析的数据来规划相关项目的后续发展。因此,如果能利用网页爬取数据技术获取数据并对各种数据进行统计分析,对后续淘宝的发展具有指导意义。

包括:商品名称title、商品价格price、付款人数deal,店铺名称shop、店铺地址location、商品的详情页detail_url。

1、开打淘宝网站,输入搜索内容“word”查找商品

2、再解决登录问题(登录时解决网站对selenium的判别,修改浏览器的内部属性,否则被识别出有selenium,需要进行滑动登陆验证。但是在运行时,你手动地去进行滑动登录也是会判别出存在selenium的,进而登陆不上去

3、对查找商品在控制台上输出

4.1所需模块

 

首先的话,我们需要导入一些模块,比如第三方模块selenium,大家如果发生报错的话,就需要额外安装了,安装selenium模块有2个方法

  1、在pycharm的terminal控制台命令行中输入:pip install selenium

  2、在win+r中的cmd里输入:pip install selenium

这两个方法都是可以的。

 

这两个的话,我们则是用来设置随机时间的,在抓取到数据之前,我们需要点击搜索框、搜索一些按键。我们需要模拟人为的操作时间,否则的话很可能操作失败了,我们随机地等待1-3秒的时间。

4.2创建chrome浏览器,打开淘宝网

在关于创建浏览器的话,首选是chrome浏览器,调出开发者模式太方便了,火狐也是可以的,但首选首选首选chrome,因为我真的没用过火狐,哈哈哈哈哈哈

然后使用driver.get()方法,往内部传一个地址,我们就用淘宝网的地址。我们也就打开了下面的所示淘宝的网页界面。

 

 4.3Xpath解析路径

我们要在淘宝网的搜索框中输入我们的商品,还要点搜索按钮,进而还需要登录(需要用户名、密码)。这都需要我们在网页上定位这些搜索框、搜索按钮、用户名框、密码框、登录按钮。所以打开淘宝网页的开发者模式,找到搜索框、搜索按钮、用户名框、密码框、登录按钮的xpath。

我们利用find_element_by_xpath()这个函数来解析对应的xpath

设置等待的时间,模拟人为操作

 

开发者模式

首先我们定位到搜索框,就在开发者模式的Elements下,copy  -->  copy xpath。复制到我们的find_element_by_xpath()函数中,其他的搜索按钮、用户名框、密码框、登录按钮也是这样找。

4.4 搜索商品关键字 

在淘宝网上,根据我们所需要爬取的商品信息,在搜索框中搜索爬取的商品,比如说 帽子。

 

 在搜索之后就出现一个登陆的界面,我们再根据4.3xpath解析路径的方法将我们的用户名,密码传进去,再进行登录。

代码如下

 

不过此时会遇到一个问题登陆的时候需要我们进行滑动验证

这是因为淘宝网检测出了selenium这个东西,尽管你人为地去滑动,但还是会登陆失败。

所以我们在创建出浏览器之后,随即改变浏览器内部的一些属性,可以网站避免检测出selenium的存在,就不需要我们进行滑动登录的验证了。

 

4.5获取爬取商品具体信息

解析获取商品名称title、商品价格price、付款人数deal,店铺名称shop、店铺地址location、商品的详情页detail_url的数据

 这时候我们需要借助一个插件:xpath helper  十分好用,可以写我们xpath的语法,来帮助我们定位商品的具体信息。

:这一页的48个商品名称 

下载地址

链接:https://pan.baidu.com/s/1iCEbjnpa8dhTDScIhkvbZA  提取码:1uv9

找到第一个商品,找到商品列表,每个商品列表里面都有该商品的具体信息,比如商品名称、商品价格、付款人数,店铺名称、店铺地址、等等等的数据

 我们要获取所有的div标签divs,然后再遍历divs去获取所需要的商品具体信息

 具体代码

 

爬取第一页和第二页的商品信息,一页爬取完之后便点击下一页 

 

完整代码如下

 

爬取的结果如图: 

 
  • 连接我们本机的数据库
  • 接着创建游标对象
  • 执行sql语句,将数据存入数据库表information中

(注意:在sql语句里,“不要用%或者+操作符来拼接SQL语句,应该使用占位符,因为我使用了%拼接在运行的时候出错了,找了百度解决了这个问题

 
 

在将数据库导入csv文件,借助了这个博客python把mysql数据库中的数据表写入csv文件_程序员 小明的博客-CSDN博客 

 

此时,我们在e盘中的python1文件中,就有了taobaodatatest.csv这个文件。里面的数据是由webcrawlers数据库information这个表导入的。

在我们进行数据分析之前,我们要拿到商品的价格price_product、和购买人数number_purchase

这里面的数据包含了一些无用符号,比如说' '、万、+、人付款、元。我们需要它的数据进行分析。所以我们把这些符号处理一下,拿到我们所需要的数据。

 

 将taobaodatatest.csv文件的特殊符号处理完之后,进行数据分析、建模

 

在程序运行的时候,在最后的数据建模分析的时候出现了错误: 

TypeError: cannot convert the series to <class 'int'>这个错误。网上查了python报TypeError: cannot convert the series to <class 'float'> - 极客分享

这篇中说:可能是出现了空值,这个空值也是很特殊,既不是null也不是none。然后我翻了我的数据库,发现爬取的数据,极个别商品没有商品价格、商品没有购买人数。这就导致我在计算总销售额的时候出现了这个错误

所以在对爬取数据存入数据库的时候,对xpath解析得到的:商品价格price、购买人数deal进行判定:当他们是  ''  的时候,我赋值一个0给它们。

 

此时爬取的数据进行分析结果如图

本文地址:http://yy520w.xhstdz.com/quote/2470.html    物流网资讯 http://yy520w.xhstdz.com/static/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号