我正在尝试自动从www.premierleague.com网站下载玩家图像。我现在面临的问题是,当我使用BeautifulSoup解析球员照片的img src时,它返回的是"photo-missing.png“。
当您检查html时,您可以看到它被称为p51490.png !?而不是“photo-missing.png.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>我想知道有没有人知道为什么会这样?
发布于 2019-01-04 14:00:11
它是由JS自动生成的,可能是为了防止抓取。但是你可以用p51490替换Photo-Missing,这个值保存在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'])https://stackoverflow.com/questions/54030214
复制相似问题