Как мне разобрать URL-адрес после поиска? - PullRequest
0 голосов
/ 30 мая 2020

Я пытаюсь проанализировать определенную c часть URL-адреса после поиска на любом языке. (В идеале Javascript, но открыт для Python)

Как мне получить конкретную c часть URL-адреса и сохранить / сохранить?

Например, в songking.com способ получения идентификатора исполнителя - проверка определенной c части URL-адреса после поиска имени исполнителя в строке поиска веб-сайта.

в приведенном ниже случае идентификатор исполнителя: 301329 .

https://www.songkick.com/artists/ 301329 -ra c

Я твердо верю, что есть способ проанализировать эту часть, используя python или js, учитывая, что у меня есть файл csv, в столбце которого указано имя исполнителя. Вместо того, чтобы искать всех художников по одному. Мне интересно узнать об алгоритме, который составляет мой столбец csv и выполняет его поиск, анализирует URL-адрес и сохраняет / сохраняет.

enter image description here

Было бы очень признательно, даже если Я мог только получить подсказку, с которой я мог бы начать.

Всегда большое спасибо.

Ответы [ 2 ]

1 голос
/ 30 мая 2020

Это можно сделать с помощью регулярных выражений.

Вот пример 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/, которому предшествует группа десятичных знаков, а затем sh, а затем группа букв.

Метод match () извлекает результат сопоставления строки с регулярным выражением.

Таким образом, он вернет полную строку в первом индексе, а затем сопоставленный Группа (\d+) во втором индексе (match[1] в нашем случае).

Если вы не уверены в протоколе (http против https), вы можете добавить ? в регулярное выражение сразу после https . Это делает s в https необязательным. Таким образом, регулярное выражение станет /https?:\/\/www\.songkick\.com\/artists\/(\d+)-.+/.

Дайте мне знать, если вам нужно больше объяснений.

0 голосов
/ 30 мая 2020

Во-первых, вы можете просто использовать 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)

Надеюсь, это вам поможет.

...