Ocorreu algum problema com o servidor que hospeda as imgs? ele me retorna o erro : "[WinError 10051] Uma operação de soquete foi tentada em uma rede inacessível"
#importando bibliotecas:
import pandas as pd
from urllib.request import urlopen , urlretrieve
from bs4 import BeautifulSoup
#declarando variáveis:
cards = []
#obtendo o html e o total de paginas:
response = urlopen('https://alura-site-scraping.herokuapp.com/index.php')
html= response.read().decode('utf-8')
soup = BeautifulSoup(html , 'html.parser')
pages = int(soup.find('span',class_='info-pages').get_text().replace('Página 1 de ',''))
#Interando todas as páginas do site:
for i in range(pages):
#Obtendo o HTML
response = urlopen('https://alura-site-scraping.herokuapp.com/index.php?page='+str(i+1))
html = response.read().decode('utf-8')
soup = BeautifulSoup(html , 'html.parser')
#obtendos TAG's de interesse:
anuncios = soup.find('div',{'id':'container-cards'}).findAll('div' , class_='card')
#coletando informação dos cards:
for anuncio in anuncios:
card = {}
# Valor
card['value'] = anuncio.find('p',{'class':'txt-value'}).getText()
# Informações
infos = anuncio.find('div',class_ = "body-card").findAll('p')
for info in infos:
card[info.get('class')[0].replace('txt-','')] = info.getText()
# Acessórios
itens = anuncio.find('div',class_="body-card").ul.findAll('li')
itens.pop()
acessorios = []
for item in itens:
acessorios.append(item.getText().replace("► ",""))
card['itens'] = acessorios
#adicionando resultado a lista cards:
cards.append(card)
#Imagem
image = anuncio.find("div",class_="image-card").img
urlretrieve(image.get('src'),'./output/img/' + image.get('src').split('/')[-1])
#Criando um dataframe com os resultados
dataset = pd.DataFrame(cards)
dataset.to_csv("./output/data/dataset.csv",index=False,encoding='utf-8-sig',sep=';')
dataset