如何从python3中的Swarm网页中提取Foursquare网址?

时间:2017-09-21 14:53:04

标签: python-3.x foursquare swarm

假设我们有这个群体网址" https://www.swarmapp.com/c/dZxqzKerUMc"我们如何在上面链接的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 foursquare并不总是相同,那么为每个给定的Swl url获取该特定url的最佳方法是什么。

我试过了:

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 个答案:

答案 0 :(得分:0)

我使用https://foursquare.com/v/作为模式来获取所需的网址

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