Как извлечь местоположение 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