tutorial soup scraping page from examples beautiful python html web-scraping beautifulsoup html-parsing

scraping - Python raspado(Beautiful Soup) para obtener datos de este HTML



web scraping python examples (2)

Hay múltiples formas de llegar al elemento. Una opción es confiar en la etiqueta a, href de la cual contiene la parte ria-money-transfer , luego obtener el siguiente elemento span que contiene la tasa:

import re from bs4 import BeautifulSoup import requests response = requests.get(''http://www.compareremit.com'') soup = BeautifulSoup(response.content) link = soup.find(''div'', class_=''c_logo_box'').find(''a'', href=re.compile(r''ria-money-transfer'')) print(link.img.get(''alt'')) rate = link.find_next_sibling(''span'').text.split('' '')[-1] print(rate)

Huellas dactilares:

RIA Money Transfer 61.24

<ul> <li> <div class="c_logo_box"> <a href="money-transfer-companies/ria-money-transfer/"><img src="http://www.compareremit.com/uploads/ria-logo11.png" style="height:57px;width:147px;" alt="RIA Money Transfer"></a> <span class="rs"> <span class="txt13">&#8377;</span> 61.24</span> </div> </li> ...

Deseo eliminar el nombre de ''alt = Ria Money Transfer'' y puntuar del tramo 61.24.

Hasta ahora tengo este código Python:

#!/usr/bin/python import requests import re from bs4 import BeautifulSoup r = requests.get(''http://www.compareremit.com'') data = r.text soup = BeautifulSoup(data) for rate in soup.find_all(''li'', re.compile(''money'')): print rate.text

No me da nada. ¿Podría alguien decirme qué me estoy perdiendo? Además, tengo problemas para visualizar qué elemento soy compatible con buscar en la búsqueda for loop, ¿podría aclarar en general cómo saber qué especificar como condición en for loop en tales casos?


Su código lógicamente no es correcto. Puedes hacer esto de múltiples maneras, prueba este código

#! / usr / bin / python

import requests import re from bs4 import BeautifulSoup r = requests.get(''http://www.compareremit.com'') data = r.text soup = BeautifulSoup(data) for rate in soup.find_all(''div'',{"class":"c_logo_box"}): print rate.a.img[''alt''] print rate.span.text