Прекрасный суп странным образом возвращается '/photo-missing.png' - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь автоматизировать загрузку изображений игроков с сайта www.premierleague.com.Проблема, с которой я сейчас сталкиваюсь, заключается в том, что когда я использую BeautifulSoup для анализа img src фотографий игрока, он возвращает «photo-missing.png».

de_gea

Вы можете видеть, когда вы проверяете html , он называется p51490.png!?а не "photo-missing.png"

Мой код выглядит следующим образом:

import requests
from bs4 import BeautifulSoup

player_page = requests.get('https://www.premierleague.com/players/4330/David-De-Gea/overview')
soup = BeautifulSoup(player_page.text, 'html.parser')
print(soup.find(class_="imgContainer"))

Вывод этого дает:

 <div class="imgContainer"><img alt="David De Gea" class="img" data- 
    player="p51940" data-script="pl_player-image" data-size="250x250" data- 
    widget="player-image" src="//platform-static- 
    files.s3.amazonaws.com/premierleague/photos/players/250x250/Photo- 
    Missing.png"/></div>

Мне интересно, еслиКто-нибудь знает, почему это происходит?

1 Ответ

0 голосов
/ 04 января 2019

Он генерируется автоматически JS, возможно, для предотвращения соскоба.но вы можете просто заменить Photo-Missing на p51490, это значение сохраняется в атрибуте data-player.

soup = BeautifulSoup(player_page.text, 'html.parser')
# using CSS selector
img = soup.select_one('.imgContainer img')
img['src'] = img['src'].replace('Photo-Missing', img['data-player'])
print(img)
print(img['src'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...