假设我们有这个群体网址" 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'))
答案 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