Как извлечь строку результата в Beautiful Soap? - PullRequest
1 голос
/ 15 апреля 2020
import requests
from bs4 import BeautifulSoup
import pandas as pd
import re

start_url = 'https://www.example.com'
downloaded_html = requests.get(start_url)
soup = BeautifulSoup(downloaded_html.text, "lxml")
full_header = soup.select('div.reference-image')
full_header

Вывод приведенного выше кода:

[<div class="reference-image"><img src="Content/image/all/reference/c101.jpg"/></div>,
 <div class="reference-image"><img src="Content/image/all/reference/c102.jpg"/></div>,
 <div class="reference-image"><img src="Content/image/all/reference/c102.jpg"/></div>]

Я хотел бы извлечь содержимое img src, как показано ниже;

["Content/image/all/reference/c101.jpg",
 "Content/image/all/reference/c102.jpg",
 "Content/image/all/reference/c102.jpg"]

Как его извлечь

1 Ответ

2 голосов
/ 15 апреля 2020

Чтобы получить это, просто переберите результат:

img_srcs = []
for i in full_header:
    img_srcs.append(i.find('img')['src'])

Это дает:

['Content/image/all/reference/c101.jpg', 'Content/image/all/reference/c102.jpg', 'Content/image/all/reference/c102.jpg']

Вот одна строка для этого:

img_srcs = [i.find('img')['src'] for i in full_header]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...