Python - Scrap links

 
Vista:
sin imagen de perfil

Scrap links

Publicado por Manual (1 intervención) el 07/03/2023 09:45:28
Hola muy buenas, estoy intentando scrapear unos links de una web y me aparece en consola unos datos que no se corresponden con lo que intento sacar, lo he intentado de varias formas y no hay manera, el codigo es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import requests
from bs4 import BeautifulSoup
import pandas as pd
import csv
import codecs
 
'''url = "https://www.casio.com/es/watches/"
'''
url = 'https://www.casio.com/es/watches/'
headers = {
    'user-agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41'
 
}
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.content, 'html.parser')
 
 
div = soup.find('div', {'class': 'cmp-product_panel__inner'})
links = div.find_all('a')
for link in links:
    productos= links.get('href')
    print(productos)

Me aparece por consola unos div y demás pero no lo que necesito que son los links de las webs, alguien sabría donde estoy fallando?, saludos y gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Scrap links

Publicado por Costero (92 intervenciones) el 08/03/2023 03:27:32
Tienes un error aqui:


1
2
3
for link in links:
    productos= links.get('href')
    print(productos)

seria:

1
2
3
for link in links:
    productos= link.get('href')
    print(productos)

Aun no retornaria lo que quieres por que not hay "href". Como puedes ver abajo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="cmp-product_panel__inner cmp-product_panel__inner--empty">
<a>
<div class="cmp-product_panel__thumb">
<span class="cmp-product_panel__tag"></span>
<div class="cmp-product_panel__img"></div>
</div>
<div class="cmp-product_panel__info">
<div class="cmp-product_panel__info-main cmp-product_panel__info-main--empty">
<div class="cmp-product_panel__title"><div class="cmp-product_panel__title--empty"></div></div>
<div class="cmp-product_panel__code"><div class="cmp-product_panel__code--empty"></div></div>
<div class="cmp-product_panel__price">
<div class="cmp-product_panel__price-label"><div class="cmp-product_panel__price-label--empty"></div></div>
<span class="cmp-product_panel__price-txt"><div class="cmp-product_panel__price-txt--empty"></div></span>
</div>
</div>
</div>
</a>
</div>

Quizas es esto lo que quieres:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import requests
from bs4 import BeautifulSoup
 
'''url = "https://www.casio.com/es/watches/"
'''
url = 'https://www.casio.com/es/watches/'
headers = {
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41'
 
}
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.content, 'html.parser')
 
# div = soup.find('div', {'class': 'cmp-product_panel__inner'})
div = soup.find('div', {'class': 'cmp-footer-nav__category-item'})
links = div.find_all('a')
 
for link in links:
    productos = link.get('href')
    print(productos)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar