首页 > 解决方案 > 搜索后如何解析网址?

问题描述

在使用任何语言搜索后,我正在尝试解析 url 的特定部分。(理想情况下是 Javascript,但对 Python 开放)

如何获取 url 的特定部分并保存/存储?

例如,在songking.com中,获取artist_id的方法是在网站搜索栏搜索艺术家姓名后,查看url的特定部分。

在下面的例子中,艺术家 ID 是301329

https://www.songkick.com/artists/ 301329 -rac

我坚信有一种方法可以使用 python 或 js 解析这部分,因为我有一个 csv 文件,其列中有艺术家姓名。而不是一一搜索所有的艺术家。我想知道识字我的 csv 列并搜索它并解析 url 并保存/存储的算法。

在此处输入图像描述

即使我只能得到一个可以开始的提示,我也会非常感激。

非常感谢你。

标签: javascriptpythondata-visualization

解决方案


可以使用正则表达式来完成。

这是一个 JavaScript 实现的示例

const url = "https://www.songkick.com/artists/301329-rac";

const regex = /https:\/\/www\.songkick\.com\/artists\/(\d+)-.+/;

const match = url.match(regex);

if (match) {
  console.log('Artist ID: ' + match[1]);
} else {
  console.log('No Artist ID found!');
}

这个正则表达式/https:\/\/www\.songkick\.com\/artists\/(\d+)-.+/意味着我们试图匹配以https://www.songkick.com/artists/开头的东西,前面是一组小数,一个破折号,然后是一组字母。

match() 方法检索将字符串与正则表达式匹配的结果。

因此它将返回第一个索引中的整个字符串,然后返回(\d+)第二个索引中的匹配组(match[1]在我们的例子中)。

如果您不确定协议(http 与 https),您可以?在 https 之后的正则表达式中添加一个。这使得 https 中的 s 是可选的。所以正则表达式会变成/https?:\/\/www\.songkick\.com\/artists\/(\d+)-.+/.

如果您需要更多解释,请告诉我。


推荐阅读