I am trying to get list of all products from mercado livre ,but I dont know what else to write in my code. My code is running fine ... The only thing that I need is to extract products from all pages instead of page one.
Follow code bellow:
import csv
from csv import reader, writer
import requests
from bs4 import BeautifulSoup
url_base = 'https://lista.mercadolivre.com.br/'
produto_nome = input('Qual produto você deseja? ')
response = requests.get(url_base + produto_nome)
site = BeautifulSoup(response.text, 'html.parser')
produtos = site.findAll('div', attrs={'class': 'andes-card andes-card--flat andes-card--default ui-search-result ui-search-result--core andes-card--padding-default'})
with open (r'C:\Users\Lucas\output\lista_precos.csv','a',encoding='utf8',newline='') as f:
fieldnames = ['Produto','Link do Produto','Preco']
dw = csv.DictWriter(f,delimiter=';',fieldnames=fieldnames)
dw.writeheader()
for produto in produtos:
titulo = produto.find('h2', attrs={'class': 'ui-search-item__title'})
link = produto.find('a', attrs={'class': 'ui-search-link'})
real = produto.find('span', attrs={'class': 'price-tag-fraction'})
centavos = produto.find('span', attrs={'class': 'price-tag-cents'})
print(produto.prettify())
print('Título do produto:', titulo.text)
print('Link do produto:', link['href'])
if (centavos):
print('Preço do produto: R$', real.text + ',' + centavos.text)
else:
print('Preço do produto: R$', real.text)
linha = titulo.text + ';' + link['href'] + ';' + "R$" + real.text + "," + centavos.text + '\n'
f.write(linha)
print('\n\n')