我正在尝试自动从www.premierleague.com网站下载播放器图像。我现在面临的问题是,当我使用BeautifulSoup解析播放器照片的img src时,它会返回“ photo-missing.png”。
您可以在检查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>
我想知道是否有人知道为什么会这样?
答案 0 :(得分:3)
它是由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'])