如何通过rel内容获取链接标记的文本?

时间:2018-02-12 21:53:29

标签: python beautifulsoup

我需要从href获取url:

<link rel="apple-touch-icon" href="https://abs.twimg.com/icons/apple-touch-icon-192x192.png" sizes="192x192">

因为它指向twitter的favicon。

您可以在此访问该网站,它是Twitter页面。确切地说,是推文网址。

https://twitter.com/RichardSocher/status/963117994862768128

html中还有其他链接标记,但我需要这个标记。

目前我正在收集所有链接标记并将其放在第10位(因为这是favicon网址的索引):

import requests
from bs4 import BeautifulSoup

url = 'https://twitter.com/RichardSocher/status/963117994862768128'

req = requests.get(url)
soup = BeautifulSoup(req.text, "lxml")

#Obtiene el favicon de Twitter
links_list = []
for link in soup.find_all('link'):
    links_list.append(link.get('href'))

links_list[10] #Desired url.

有没有办法让这个&#39; href&#39;通过链接的rel内容?

编辑1:需要通过 rel 属性而不是类来完成。

1 个答案:

答案 0 :(得分:1)

您可以将字典传递到soup.findsoup.find_all以匹配属性:

the_url = soup.find("link",{"rel":"apple-touch-icon"})['href']

或者,您可以使用BeautifulSoup的CSS选择器语法并在选择器中使用属性匹配:

the_url = soup.select("[rel='apple-touch-icon']")[0]['href']