Как извлечь местоположение URL-адреса Foursquare из веб-страницы Swarm в python3?

Предположим, у нас есть этот рой URL-адрес " https://www.swarmapp.com/c/dZxqzKerUMc", как мы можем получить URL-адрес по гиперссылке Apple Williamsburg в ссылке выше.

Я пытался отфильтровать его по тегам html, но есть много тегов и множество ссылок на foursquare.com. ниже является частью исходного кода по данной ссылке выше

<h1><strong>Kristin Brooks</strong> at <a 
href="https://foursquare.com/v/apple-williamsburg/57915fa838fab553338ff7cb" 
target="_blank">Apple Williamsburg</a></h1>

Квадратный квадрат URL в коде не всегда один и тот же, так что это лучший способ получить этот конкретный URL уникально для каждого данного URL Swarm.

Я попробовал это:

import bs4
import requests

def get_4square_url(link):
    response = requests.get(link)
    soup = bs4.BeautifulSoup(response.text, "html.parser")
    link = [a.attrs.get('href') for a in 
soup.select('a[href=https://foursquare.com/v/*]')]
    return link

print (get_4square_url('https://www.swarmapp.com/c/dZxqzKerUMc'))

1 ответ

Решение

Я использовал https://foursquare.com/v/ в качестве шаблона, чтобы получить желаемый URL

def get_4square_url(link):
    try:
        response = requests.get(link)
        soup = bs4.BeautifulSoup(response.text, "html.parser")
        for elem in soup.find_all('a', 
href=re.compile('https://foursquare\.com/v/')): #here is my pattern
            link = elem['href']
        return link
    except requests.exceptions.HTTPError or 
requests.exceptions.ConnectionError or requests.exceptions.ConnectTimeout \
            or urllib3.exceptions.MaxRetryError:
        pass
Другие вопросы по тегам