Python image scrapper become base64
У меня есть инструменты скраппера, но мой код всегда скрапит base64 вместо реальных урлов, вот мой код:
import requests
from bs4 import BeautifulSoup
baseurl = "https://www.google.com/search?q=beli+anjing&sxsrf=APq-WBt4jLZxrfwaRP4YeYUhlfB-EWkTlw:1649653964236&source=lnms&tbm=shop&sa=X&ved=2ahUKEwjEnan0n4v3AhUNRmwGHTIVDlQQ_AUoAnoECAEQBA&biw=1365&bih=937&dpr=1"
headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0"}
r = requests.get(url=baseurl, headers=headers)
soup = BeautifulSoup(r.content, 'lxml')
for product_images in soup.findAll('div', attrs={'class': 'ArOc1c'}):
print (product_images.img['src'])
В результате получается что-то вроде:
data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
А вот html-элемент, который я хочу утилизировать:
<img id="10857343619710684967" src="https://encrypted-tbn2.gstatic.com/shopping?q=tbn:ANd9GcTP0ECipmHbw3MkChu6xHYkHA3AzxaiNoUnqxaW35bfDkFugfhO23iwklpDjhYlUFI-RIyLu95TkcpNCBGxBeKPIarPilIv6a697PoK-RM&usqp=CAE" alt="" role="presentation" data-atf="4" data-frt="0">
Мне нужно значение src, но когда я скремблирую, он всегда получает base64 вместо реального url, как описано выше. результат, который я хочу:
https://encrypted-tbn2.gstatic.com/shopping?q=tbn:ANd9GcTP0ECipmHbw3MkChu6xHYkHA3AzxaiNoUnqxaW35bfDkFugfhO23iwklpDjhYlUFI-RIyLu95TkcpNCBGxBeKPIarPilIv6a697PoK-RM&usqp=CAE
Используйте это:
import base64
for product_images in soup.findAll('div', attrs={'class': 'ArOc1c'}):
data = product_images.img['src']
img_data = data.split('base64,')[1].encode('utf8')
print (base64.decodebytes(img_data))