Пара ошибок, которые я обнаружил:
Во-первых, вам нужно исправить URL, поскольку он пытается получить доступ к http:////ak-static.cms.nba.com/wp-content/uploads/headshots/nba/latest/260x190/1629121.png
, что является недействительным.Поэтому измените строку на:
m=('http:'+ img['src'])
Во-вторых, вам нужно записать в байтах.поэтому измените на:
f = open('C:/jaylen_adams.jpg','wb')
Код:
from selenium import webdriver
from bs4 import BeautifulSoup
import requests
import os
driver = webdriver.Chrome('C:/chromedriver_win32/chromedriver.exe')
url = 'https://www.nba.com/players/jaylen/adams/1629121'
driver.get(url)
#print(driver.page_source)
soup = BeautifulSoup(driver.page_source , 'lxml')
div = soup.find('section' , class_='nba-player-header__item nba-player-header__headshot')
img = div.find('img')
print("")
m=('http:'+ img['src']) # <----- edit made here
f = open('C:/jaylen_adams.jpg','wb') # <---- edit made here
f.write(requests.get(m).content)
f.close()
driver.__exit__()
ТАКЖЕ: Нет необходимости использовать селен, поскольку это может замедлитьпроцесс, если вы делаете несколько страниц.Вы можете упростить его, просто используя запросы, а также избавить от необходимости использовать .close()
файл, если вы поместите его в оператор with
, так как он автоматически закроется после завершения:
Более короткий код:
from bs4 import BeautifulSoup
import requests
url = 'https://www.nba.com/players/jaylen/adams/1629121'
response = requests.get(url)
soup = BeautifulSoup(response.text , 'lxml')
div = soup.find('section' , class_='nba-player-header__item nba-player-header__headshot')
img = div.find('img')
print("")
m=('http:'+ img['src'])
with open('C:/jaylen_adams.jpg','wb') as f:
f.write(requests.get(m).content)