2017-09-21 13 views
1

上記のリンクのアップルウィリアムズバーグのハイパーリンクの下にURLを取得する方法については、このスウォームのURL「https://www.swarmapp.com/c/dZxqzKerUMc」があるとします。Python3でSwarmのWebページからFoursquareのURLの場所を抽出するにはどうすればいいですか?

私はhtmlタグに従ってフィルタリングしようとしましたが、多くのタグとたくさんのfoursquare.comリンクがあります。 は、以下のように、すべての与えられた群れのURLに対して一意に特定のURLを取得するための最良の方法は何か、

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

ない、常にコード内の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')) 

答えて

0

私が望ましい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 
を取得するために、パターンとして https://foursquare.com/v/を使用
関連する問題