Web抓取的产品经理指南

2020-07-10 12:54:54

我们承认吧。典型的产品经理日可以是超级繁忙的 - 客户会议、竞争对手分析、积压整理、管理报告等等。总是有很多事情要做。

当然,其中一些事情需要PM全神贯注的个人关注、与客户相处的 - 时间、功能规划、演示等等。但是您将看到,产品经理还必须处理许多重复性的任务。为什么不把枯燥、重复、平凡(但重要)的事情自动化呢?

真正能帮助产品经理实现数据收集自动化的一件事就是学习如何抓取网络来收集数据。我个人最喜欢的一个用例是,当信息在竞争对手的网站上更新时,自动“跟踪”信息。(这就是我如何了解竞争对手发布的新产品的最新情况)。

在这一点上,你们中的一些读到这篇文章的人可能会想, - 我需要先学习如何编码,然后才能浏览Web吗?

答案是“是的,但你不需要成为专家”。事实上,即使你以前从未编码过, - 也只需跟随这篇文章,让它成为你的第一个编码项目!

事实上,学习如何抓取Web可能是开始编写少量代码 - 的最简单方式,而且它可以立即带来价值。

所以,让我们直接跳进去,建立一个追踪器来跟踪竞争对手的网站。

假设你想要开展一项全球香水业务,所以你想知道你的竞争对手提供的产品和品牌的范围,并记录你的发现。

让我们来看看你最大的竞争对手之一 - 克里斯蒂安·迪奥。

如果没有Web抓取技术 - ,您将不得不一个接一个地复制粘贴所需的所有信息。在重复的任务上浪费了太多的时间和精力。

顺便说一句,这就是迪奥。在这个领域,您还想了解其他几个竞争对手,不是吗?生命太短暂了,不能把时间花在这些事情上。因此,让我们将该过程自动化。

“打开”男装和女装香水的2个迪奥URL - 。

第一步是确保您的计算机有PythonPython,检查版本号的最简单方法是在命令提示符或终端中键入“ - ”。它将返回版本号,以及它是在32位还是64位上运行以及一些其他信息。

如果您没有安装Python - ,这是不太可能的情况,下面是步骤。

打开您的终端并键入命令CD。接下来,键入命令python。Python解释器应该使用版本号进行响应。如果您使用的是Windows计算机,则可能必须导航到安装Python的文件夹(例如,Python27,这是默认文件夹),Python命令才能运行。

步骤2是打开您最喜欢的代码编辑器并开始编写代码!我用崇高的文字。

我们将编写代码来查看迪奥网站的HTML代码,并提取我们需要的信息。但是在我们编写代码本身之前,让我们先来看一下HTML。这将帮助我们更好地了解我们需要做什么。

展开一个<;li>;标记,您将看到包含产品信息的HTML div标记。如果展开其他<;li>;标签 - ,您将看到网站上列出的每个产品都重复使用这些标签。

因此,我们所需要做的就是编写代码,从这些HTML标记中提取信息。

因为我们的代码需要提取位于HTML标记 - 内的信息,所以我们将使用一个非常酷的Python库,名为Beautiful Soup来帮助我们。Beauty Soup提供了几种简单的方法来导航、搜索和修改HTML标记,并提取其中的信息。

接下来,创建一个新文件夹来存储您的代码-让我们将此文件夹命名为“web-scillper-Dior”。在该文件夹中创建一个新的python文件“scillper.py”。

此时,如果您只想运行代码并查看结果 - ,这里有指向github上的scillper.py的链接。只需将该文件中的代码复制并粘贴到您创建的新python文件中即可。

一旦您通过 - 复制了代码,请转到命令窗口或终端,然后导航到您创建的“web-scillper-dior”文件夹(使用命令‘cd’)。一旦您进入该文件夹 - ,就可以在您的终端上运行以下命令。

几秒钟后,您应该会看到终端上打印出“ - with Dior Product Info Generated”(生成了迪奥产品信息的csv文件)。一旦发生这种情况,请转到您的文件夹,CSV文件应该就在那里,其中包含您需要的所有信息。您可以稍微修改一下代码,在几分钟内从您关心的其他香水公司提取信息!

如果您关心代码实际在做什么,请阅读 - 上的😊😊。

如果您查看Screper.py文件 - ,它应该如下所示。

我们做的第一件事是导入以下包 - ,我们将需要它们。

接下来,我们定义上面提到的男士香水和女士香水的Dior URL。

对于Dior_URL中的PG:feamems_array=[]page=urllib2.urlopen(PG)SOUP=BeautifulSoup(page,“html.parser”)products=Soup.find_all(“div”,class_=“product-Legend”)。

创建一个名为“feamesarray”的数组来存储来自该url的产品属性。

我们使用urllib2获取每个网页页面的Html代码,并将其存储到一个名为 - 的变量中。

我们要求Beautiful Soup使用变量页面创建一个Object Soup,然后它可以帮助我们找到我们可能感兴趣的任何HTML标记。

最后,我们使用这个SOUP对象查找类为“ - -Legend”的所有HTML div标记,为什么?因为如果您还记得上面的HTML,这个div标记包含我们关心的所有产品信息。此外,每个这样的div标签都对应于页面上的一个产品。

Soup找到所有这些标记,并将结果存储到另一个名为“Products”的变量中。

好的,到目前为止一切顺利。现在,我们只需迭代进入此Products对象并获得所需的信息。这是怎么做的。

对于产品中的标签:fferumeBrand=tag.find(“span”,class_=“title-with-level product-title font-Century-std size-s粗体”).text filumeName=tag.find(“p”,class_=“multiline-text product-subtitle”).text if tag.find(“span”,class_=“sr-only”):finumeIntenthy=tag.find(“span”,class_=“sr-only”).text。

在 - 上面的代码片段中,我们循环遍历Products对象,并通过查找适当的标记来提取香水品牌、香水名称&;prefumeIntensity。

然后,我们将所有这些产品属性存储到一个名为“FERMUSES_ARRAY”的数组中。

我们所需要做的就是使用这个FERMUMS_ARRAY将内容写入CSV文件,并将其保存在我们的文件夹中。

使用OPEN(“index.csv”,mode=‘a’)as csv_file:Writer=csv.write(Csv_File)writer.writerow([“*”.encode(‘utf-8’).strip(),“*”.encode(‘UTF-8’).strie(),“*”.encode(‘UTF-8’).strie()])writer.writerow([“BRAND”.encode(‘utf-8’).strip(),“名称”.encode(‘UTF-8’).strie(),“Intenity”.encode(‘UTF-8’).strie()])

对于香水品牌、香水名称、香水在香水_ARRAY中的强度:writer.writerow([perfumeBrand.encode(‘utf-8’).strip(),香水名称encode(‘UTF-8’).strie(),PerfumeIntensity.encode(‘UTF-8’).strie()]。

以下是您所有的竞争对手产品信息 - 以编程方式收集并整齐地组织成csv文件 - ,为您节省大量时间!🤖。

如果你对这篇文章有问题或评论,只需留下评论或在Twitter上联系我!