Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Split de string após o scrapping da página com o BeautifulSoup

Eu estou fazendo um scrapping para captura quotações de preços de suíno em diferente mercados. Eu estou chegando numa variável final, só com um texto claro, mas eu não estou conseguindo fazer um split desse string para organiza-lo num dataset. legível

Vejam só:

argtag = soup.find('div',{'data-id': '149'}).getText()
argtag
'ArgentineLive17 Jul 158.77ARSkg1.170 2.0%'

bratag1 = soup.find('div',{'data-id': '122'}).getText()
bratag1

'Brazil - ParanáLive27 Jul6.050BRLkg0.850 16.3%'

cantag2 = soup.find('div',{'data-id': '92'}).getText()
cantag2

'Canada - QuebecCarcass24 Jul157.35CAD100kg4.200 2.7%'

O dataset que eu quero é na seguinte estrutura:

Pais |Data |Preço |Moeda |Unidade | Variação%

Claro que eu vou adicionar outras colunas para fazer essa cotações toda em USD e depois compara-la no matplotlib — mas isso fica pra depois...

Alguém consegue me dar um norte para trabalhar melhor esse string na direção no meu dataset?

6 respostas

Podia passar a url?

Opa! Claro!

url = 'https://www.pig333.com/markets_and_prices/'

Bom dia Luiz, infelizmente não posso ajudar em relação BeatifulSoup porque particularmente não gosto, mas eu fiz a partir do selenium o código ficou assim.

from selenium import webdriver
url = 'https://www.pig333.com/markets_and_prices/'
driver = webdriver.Chrome()
driver.get(url)

table = driver.find_elements_by_class_name('col-preu')
lista = []
for box in table:
    tag = box.find_elements_by_tag_name('span')
    table_text = [grade.text for grade in tag]
    n = ', '.join(table_text)
    lista.append(n)

Lembre-se que para usar o selenium é preciso instalar o geckoDriver e direcionar o caminho, qualquer duvida é só perguntar.

Print: https://ibb.co/5jk5cFv

Olá Henrique, To apanhando aqui porque esse lance do geckoDrive no Mac Catalina parece não estar bem, resolvido... E aí fui tentar rodar esse código que você sugere no Colab do Google... mas rola o mesmo erro... Nessa máquina remota...como eu instalo o geckoDrive?

https://colab.research.google.com/drive/1w-ixuvD8n0SFg4VkHg6bUUfhdIKs0tNP?usp=sharing

Oi luiz, na verdade existe muitos tutorias pela internet em relação instalação do selenium, até mesmo aqui na alura. É so abaixar o webdriver do chrome e direcionar o caminho exp: C:\Users\Radec\OneDrive\Documentos\chromedrive.

Eu recomendo a usar uma IDE, até porque o colab não funciona muito bem o selenium.

Link Driver: https://chromedriver.chromium.org/downloads

Link Alura: https://cursos.alura.com.br/forum/topico-web-scraping-problema-ao-acessar-site-com-filtros-94134

Link Youtube: https://www.youtube.com/watch?v=0MeH7Xt1i9w

solução!

Olá Luiz e Henrique,

No notebook abaixo tem um exemplo do uso do selenium no colab utilizando o código do Henrique, a primeira célula tem a instalação do selenium e do driver do chrome.

Eu fiz outro código com o BeautifulSoup também baseado no que o Henrique compartilhou aqui, acredito que o selenium é poderoso demais para uma página mais simples como essa.

https://colab.research.google.com/drive/1AFR5j-BlyEQtJFWF_VQa370EKQYsyenz?usp=sharing