Python 如何下载动态加载的链接?
我想从英超网站下载所有球员的照片,但我遇到了麻烦。 播放器图像链接都位于一个标签中,如下所示Python 如何下载动态加载的链接?,python,python-3.x,web-scraping,Python,Python 3.x,Web Scraping,我想从英超网站下载所有球员的照片,但我遇到了麻烦。 播放器图像链接都位于一个标签中,如下所示 问题是src会动态加载,因此请求库不起作用,因为在加载真正的源代码之前,标记包含以下源代码https://resources.premierleague.com/premierleague/photos/players/110x140/Photo-Missing.png 我也无法将所有请求复制到资源,因为我无法找到每个玩家的唯一标识符。我知道selenium可以用来解决这个问题,但我想知道是否有任何
问题是src
会动态加载,因此请求
库不起作用,因为在加载真正的源代码之前,标记包含以下源代码https://resources.premierleague.com/premierleague/photos/players/110x140/Photo-Missing.png
我也无法将所有请求复制到资源,因为我无法找到每个玩家的唯一标识符。我知道selenium可以用来解决这个问题,但我想知道是否有任何库可以在下载DOM之前预加载javascript,或者是否有比selenium更好/更快的选项来获取所有链接?因此,如果您想下载图像,可以使用以下技巧:)
由于所有图像url都具有相同的结构,您可以使用
数据播放器
属性的值来构造它。因此,如果您想下载图像,可以使用以下技巧:)
由于所有图像url都具有相同的结构,您可以使用
数据播放器
属性的值来构建它。您可以共享url吗?当然,我很抱歉。在帖子中添加链接!你能分享网址吗?当然,我道歉。在帖子中添加链接!非常感谢。我无法找到每个玩家的价值,认为这是不可行的,谢谢你花时间提供这个!非常感谢。我无法找到每个玩家的价值,认为这是不可行的,谢谢你花时间提供这个!
import requests
from bs4 import BeautifulSoup
response = requests.get('https://www.premierleague.com/clubs/1/Arsenal/squad')
soup = BeautifulSoup(response.content, 'lxml')
for img in soup.select('img.statCardImg'):
player_id = img.get('data-player')
url = 'https://resources.premierleague.com/premierleague/photos/players/250x250/{}.png'.format(player_id)
response = requests.get(url)
if response.status_code == 200:
with open('{}.png'.format(player_id), 'wb') as f:
for chunk in response.iter_content(1024):
f.write(chunk)