Как извлечь значение href из тега rel в Python - PullRequest
0 голосов
/ 16 октября 2019
...html...
<link rel="image_src" href="image.jpg" />
....more html....

Как извлечь URL изображения с помощью BeautifulSoup в Python

Ответы [ 4 ]

2 голосов
/ 16 октября 2019

Используйте find() или find_all() для большего количества элементов

for item in soup.find_all('link'): 
     print(item['href'])`

Вы также можете использовать {href': True}, чтобы убедиться, что ссылка будет иметь href. И {'rel': 'image_src'}, чтобы убедиться, что это ссылка с изображением.

for item in soup.find_all('link', {'href': True, 'rel': 'image_src'}): 
     print(item['href'])`

Минимальный рабочий пример

from bs4 import BeautifulSoup as BS

text = '''
    <link rel="image_src" />
    <link rel="image_src" href="image1.jpg" />
    <link rel="sound_src" href="hello.mp3" />
    <link rel="image_src" href="image2.jpg" />
'''

soup = BS(text, 'html.parser')

for item in soup.find_all('link', {'href': True, 'rel': "image_src"}):
    print(item['href'])
1 голос
/ 16 октября 2019

Попробуйте это:

links = soup.find_all("link", {"rel": True})
for link in links:
    print(link.attrs["href"])
1 голос
/ 16 октября 2019

Если soup является объектом BeautifulSoup, используйте

hrefs = [link['href'] for link in soup.find_all('link') if link.get('href') is not None]

Остерегайтесь того, что атрибут href может отсутствовать, и в этом случае link['href'] повысит KeyError,Вот почему я использовал link.get('href') для проверки существования.

Если вы хотите найти link s с rel="image_src", используйте

hrefs = [link['href'] for link in soup.find_all('link', {'rel': 'image_src'}) if link.get('href') is not None]
0 голосов
/ 16 октября 2019

Попробуйте Css селектор это.

soup.select_one('[rel="image_src"]')['href']

ИЛИ

 soup.select_one('link[rel="image_src"]')['href']

Для нескольких элементов.

for item in soup.select('[rel="image_src"]'):
    print(item['href'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...