1
resposta

[WinError 10051] Uma operação de soquete foi tentada em uma rede inacessível

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
1 resposta

Oi Luís, como vai?

Peço perdão pela demora em obter um retorno.

O servidor que hospeda as imagens está funcionando, inclusive testei o código apresentado por você e obtive a saída esperada. Esse erro que ocorreu indica alguma falha do sistema operacional com o Jupyter, pode ter sido alguma falha na conexão com a rede. Recomendo que tente reiniciar o serviço do Jupyter e tentar executar novamente o trecho de código.

Qualquer dúvida estou por aqui.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software