我有两个网站,现在我手头有数据,我想用这些数据进行分析

我有两个产品名称(品牌 + 产品名称)我只想提取品牌名称

http://www.thehut.com/jeans-clothing/men/clothing/brave-soul-men-s-cardiff-jeans-denim/10741907.html

在上面的网站中,产品名称是
Brave Soul Men's Swansea Jeans - Denim

品牌名称是
Brave Soul

所以我只想
Brave Soul

亚马逊网站链接
http://www.amazon.in/gp/product/B00L8WT2UI

同样在上面的网站中,产品名称是
Apple iPhone 5c (White, 8GB)

品牌名称是
Apple

所以我想要输出
Brave Soul
Apple

最佳答案

您试图获取的信息实际上并不存在。

如果您采用两个字符串,它们都可能有任意数量的空格,并用空格将它们连接在一起,则不再可能明确地分辨出哪个空格连接了两个字符串,哪些空格是字符串的一部分。

所以,你有几个选择:

首先,每个产品中没有那么多空格,所以你可以尝试所有的可能性:品牌 Brave 和产品 Soul Men's Swansea Jeans - Denim ,然后是品牌 Brave Soul 和产品 Men's Swansea Jeans - Denim ,然后是品牌 Brave Soul Men's 和产品 Swansea Jeans - Denim ,依此类推其他 3 种可能性.

其次,如果您可以从其他地方抓取所有品牌名称的列表并将它们存储在 set(或数据库表或其他任何内容)中,您可以在向亚马逊发送相对较慢的 Web 请求中尝试所有可能性之前预先过滤所有可能性。例如,如果您有所有品牌的列表,只需检查 BraveBrave SoulBrave Soul Men'sBrave Soul Men's Swansea 等中哪些是实际品牌,然后只测试它们。

同时,这仍然不会是完美的,因为几乎可以肯定存在模棱两可的情况。例如,有一个品牌 Apple ,还有一个品牌 Apple Records ,那么当您尝试拆分 Apple Records Master Collection 时会发生什么?您有两种有效的可能性,而不仅仅是一种。你所能做的就是设计你的代码以某种方式处理它(并单元测试你这样做是否正确)。

关于python - 如何从产品名称中提取品牌,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30047569/

10-12 19:35