繁体   English   中英

搜索后如何解析 url?

[英]How do I parse url after searching?

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

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

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

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

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

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

在此处输入图像描述

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

非常感谢你。

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

这是 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+)-.+/

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

首先,您可以简单地使用RegEx python

import re
url = 'https://www.songkick.com/artists/301329-rac'
pattern = '/artists/(\d+)-\w'
match = re.search(pattern, url)
if match:
    artist_id = match.group(1)

我希望这能帮到您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM