Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Função para scapping da página toda gera dois itens no dicionário

headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
lista = []

for pagina in range(2):
    req = Request('https://www.lojalooneytunes.com.br/loja/catalogo.php?loja=585568&categoria=17&pg='+str(pagina+1), headers = headers)
    response = urlopen(req)
    html = response.read()
    soup = BeautifulSoup(html)
    teste = {}

    produtos = soup.find('div', class_ = 'product-list').find_all('div', id = 'escopo')
    itens = []
    for x in produtos:
        itens.append(x.find('h3').get_text())
    teste['nome'] = itens
    itens = []
    for y in produtos:
        itens.append(y.find('span', itemprop = 'price').get_text())
    teste['preço'] = itens

    lista.append(teste)

Gostaria de saber como faço para gerar apenas um item (um de nome e um de preço com os valores das duas páginas) para poder jogar no dataframe. Da forma como está a lista está sendo feita com dois campos nomes (um para cada página) e dois campos preço (um para cada página)

1 resposta
solução!
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
lista = []


for pagina in range(2):
    req = Request('https://www.lojalooneytunes.com.br/loja/catalogo.php?loja=585568&categoria=17&pg='+str(pagina+1), headers = headers)
    response = urlopen(req)
    html = response.read()
    soup = BeautifulSoup(html)

    produtos = soup.find('div', class_ = 'product-list').find_all('div', id = 'escopo')

    for x in produtos:
        teste = {}
        itens = []
        preco = []
        itens.append(x.find('h3').get_text())
        preco.append(x.find('span', itemprop = 'price').get_text().replace('R$ ', ''))
        teste['name'] = itens
        teste['price'] = preco
        lista.append(teste)

Consegui resolver o problema que estava tendo. Eu precisava criar uma chave de nome e preço para cada produto presente na página e não uma chave com nome contendo todos os nomes e uma chave com preço contendo todos os preços

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