BeautifulSoup не извлекает изображение из альтернативного текста - PullRequest
0 голосов
/ 25 ноября 2018

Я нахожусь на самых предварительных этапах создания веб-скребка.Я все еще довольно новичок в Python.Я пытаюсь извлечь звездные рейтинги с веб-страницы.Это делается для того, чтобы найти список всего изображения на странице и распечатать его на консоли.

url = 'https://www.nhtsa.gov/vehicle/2017/FORD/ESCAPE/SUV/AWD#safety-ratings-frontal' #url to retrieve data from
html = '<div class="col-sm-6"><img src="/sites/nhtsa.dot.gov/themes/nhtsa_gov/images/star-rating/5.png" alt="5 star" class="vehicle-base-details--rating"></div>' #temporary-- for testing
page = urlopen(url)
soup = BeautifulSoup(page, "html.parser")
for div in soup.find_all('div'): #lists all image alt text
    for img in div.find_all('img', alt=True):
        print(img['alt'])

Когда я заменяю «page» на «html» в строке 4, BeautifulSoup может извлечь то, чтоМне нужно и печатает "5 звезд".Проблема в том, когда я пытаюсь получить HTML прямо с веб-страницы.Я также попытался выполнить поиск по классу объекта, и я получаю пустой список, когда получаю его прямо с сайта.

1 Ответ

0 голосов
/ 25 ноября 2018
from bs4 import BeautifulSoup
import requests

s = requests.Session()
url = 'https://www.nhtsa.gov/vehicle/2017/FORD/ESCAPE/SUV/AWD#safety-ratings-frontal' #url to retrieve data from
page = s.get(url).text

soup = BeautifulSoup(page, "html.parser")
for div in soup.find_all('div'): #lists all image alt text
    for img in div.find_all('img', alt=True):
        print(img['alt'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...