selenium爬取网页内容存入excel(selenium 获取网页表格)

文/Kenneth Hansen

古人云:何以解忧,唯有杜康。作为一个品酒爱好者,数据侠Kenneth Hansen为了找到物美价廉的美酒,搜集了全球最大的酒类网站信息,用数据分析为自己制作了一份“美酒清单“。

一分价钱一分货

作为一个喜欢喝红酒和咖啡,但同时又作为学生而资金有限的人,我决定用Python和Selenium爬取我最喜欢的网站——Vivino.com,来找到物美价廉的美酒。

Vivino是一个丹麦公司,它的app是下载量最多的酒类app,全球用户数量超过2600万。Vivino收录了数百万款酒的信息,是全世界最大的酒类数据库。

其开发的app也让我们这种喜欢红酒但并不像品酒师一样专业的人们可以方便地找到自己喜欢的酒。用户拍摄酒瓶上的标签并上传就可以立刻从app上看到关于这款酒的信息、评分、评价等。

Vivino是像我这样预算有限的“酒鬼”想要找到好酒时必用的app。我从上面爬取了16690瓶酒的信息。这些酒的价格从10美金到6000美金不等,所以理论上每个人都可以找到他想要的那款酒。而在搜寻好酒的过程中,我不禁好奇:Vivino上的酒的评分高低与什么有关?要想找到评价很高又很廉价的酒,我应该在哪些产地寻找?这些问题都是我这个项目想要解决的。

我爬取的数据维度包括:酒名、年代、葡萄酒类别、产地、评论数、平均价格、评分(用户整体评分,分数从0到5)。

这是对爬取的16690瓶酒的数据进行分析后得到的一些统计数据:

我在做描述性分析前,先缩小了价格区间,仅对8.99到500美金间的酒进行分析。这部分数据包括169组观测值,占整体数据的1%。

我首先分析了红葡萄酒、白葡萄酒和起泡酒。

上面的箱线图可以看出,与白葡萄酒和起泡酒相比,红葡萄酒的评分中位数稍高一些。评分大多数在3.5到4.0分之间。值得注意的是,尽管有一些异常值,三种酒的评分是符合正态分布的。另一个有趣的现象是,红葡萄酒的评分范围较另两种酒更广。

在观察价格与评分相关性的时候,我发现如下规律。

在我的预期中,是期待观察到这种相关关系的。每瓶酒的评分分数与价格似乎在某种程度上是相关关系,尤其是红葡萄酒和起泡酒。从相关系数来看,红葡萄酒和起泡酒的价格与评分的关系更紧密,相关系数分别为0.68和0.69。而白葡萄酒相对较弱,相关系数为0.57。然而,这种相关性随着红葡萄酒的价格高过100美元而逐渐减弱,超过100美元的酒的价格的上涨仅会带来评分的轻微增长。

在75-100美元间挑选顶级红酒

上面的箱线图中我们观察到红酒的评分区间更广,因此我决定看一下这些数据点围绕平均评分的分布范围(即方差)。我试图研究红葡萄酒是否比白葡萄酒评分的方差更大。

H0:红酒评分值的方差=白酒评分值的方差

H1:红酒评分值的方差≥白酒评分值的方差

经测试,p值非常低(2.2e-16),零假设被否定,红酒评分值的方差比白酒高。这一现象的原因,可能有以下几种因素。

首先,品尝两种葡萄酒的最佳温度环境不同。大概来说,红酒最好在50到65华氏度(约为10至15.5摄氏度)品尝,而白葡萄酒在45到50华氏度(约为7.2至10摄氏度)之间。因此白葡萄酒受温度影响品质的几率要更大。

另外,红葡萄酒一般在橡木桶里进行陈酿,白葡萄酒则在不锈钢桶中进行发酵。两种不同的程序导致两种完全不同的品尝体验。红葡萄酒的口味种类比白葡萄酒多,也因此可能导致评分差异更大。

与之前的散点图相比,这张图并没有什么新变化。不过,值得指出的是,我们的确有可能以75-100 美元的价格买到顶级评分的红酒 。

不过,我发现年代更久的酒评分普遍更高。下图中竖轴的年代并非完全连贯,是因为爬取的信息中,有些年代并没有对应的酒。下面的散点图中,相关系数为-0.377,也就是说随着年代靠近,评分在下降。

因此,我们需要检测这个关系是否足够显著。一个有趣的现象是,年代更久的酒,评分的区间更窄,年代越近评分区间越广。这或许也因为,现有的老酒都是那些质量好的酒,因此人们才会保存下来。而新生产的酒中,质量就参差不齐了。总之,这张图很直观地呈现了年代与评价之间的关系。

我也有一个比较意外的发现——那就是美国产的酒均价较低,但同时评分的中位数最高。这也许说明,爱喝酒的人们如果想要花费合理价格购买一款不错的酒,那么应该看一看美国产的酒。

法国的葡萄酒真的更棒么?

我经常听到人们说,法国的葡萄酒最棒。以前我也曾和一位法国人合租,我们也曾讨论为何人们认为法国的葡萄酒最好,他也多次尝试说服我。手握Vivion爬来的数据,我可以检查一下这些评分数据是否支撑“法国优越性”的说法。

selenium爬取网页内容存入excel(selenium 获取网页表格)

H0:法国产的葡萄酒平均评分=其他地区产的葡萄酒的平均评分

H1: 法国产的葡萄酒平均评分≥ 其他地区产的葡萄酒的平均评分

经过我的测试,从这些爬取的数据中并没有发现证据显示法国的葡萄酒评分高于其他地区。

接下来,我希望研究一下,当我们预算有限的时候,应当找产地是哪里的酒。因此,我将要求进一步具体化:

这款酒需要至少获得过100次点评

价格要低于30美金

最少的平均得分应在4.1分

上图证明了此前的箱线图,葡萄酒爱好者想要找到物美价廉的葡萄酒时,应当看一看美国产的酒。

在把玩了一下爬取的数据后,这些有趣的发现让我对以下这个问题产生兴趣:价格和年份能否解释评分?因此我决定检测以下这个模型:

评分 = β0 + β1 √价格 + β2 每瓶酒的评论数+ ε

分析在R-studio中进行,我的回归分析得出以下数据:

这个模型经调整后的R平方为0.5306,鉴于只有价格、年份两个预测因子,这个值已经很不错。这个模型说明,红葡萄酒在Vivino上的评分的基线是3.6分。√价格每增加一个单位,评分将提升0.053,每增加一个评论,评分增长0.000007265,即需要多达137646个评论才能让评分上升1分。

所以,我得出以下结论:

与白葡萄酒和起泡酒相比,红葡萄酒的评分值中位数稍微更高些;

红葡萄酒、白葡萄酒和起泡酒的价格和评分之间有很强的相关性;

年代越久的酒评分值的区间更窄,新酒的评分区间更宽;

美国产的红葡萄酒与其他地区产的相比,评分中位数更高;

红葡萄酒与白葡萄酒相比,评分值的方差更大;

爬取的数据并未证明法国产的葡萄酒比其他地区评分要高;

如果你在寻找30美金以下、评论超过100条的高评分葡萄酒,那么你应该看看美国产的酒;

每瓶酒的评分值有53%可以被价格和评论数来解释;

Selenium作为爬虫工具比Beautifulsoup和Scrapy慢多了,但Vivino网站的结构(无限翻页)迫使我只能这样。

注:本文翻译自《Web Scraping and Analysis of Wines on Vivino.com》。内容仅为作者观点,不代表DT财经立场。

题图 | 视觉中国

▍关于DT×NYCDSA

DT×NYCDSA是DT财经与纽约数据科学学院合作专栏。纽约数据科学学院(NYC Data Science Academy)是由一批活跃在全球的数据科学、大数据专家和SupStat Inc. 的成员共同组建的教育集团。

▍数据侠门派

本文数据侠Kenneth Hansen 是纽约数据科学学院的毕业生。他来自丹麦哥本哈根,目前在Aarhus大学攻读Business Intelligence硕士学位。

▍加入数据侠

“数据侠计划”是由第一财经旗下DT财经发起的数据社群,包含数据侠专栏、数据侠实验室系列活动和数据侠联盟,旨在聚集大数据领域精英,共同挖掘数据价值。了解数据侠计划详情请回复“数据侠计划”,投稿、合作请联系datahero@dtcj.com。

1、本网站名称:源码村资源网
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » selenium爬取网页内容存入excel(selenium 获取网页表格)

1 评论

您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论