Novato de Web-Dev aquí. así que por favor sé amable.
Encuentro esta etiqueta realmente extraña de analizar.
Considere el siguiente documento HTML:
import urllib3
from bs4 import BeautifulSoup
url = 'https://www.carrefourkuwait.com/mafkwt/en/Frozen-Food/c/FKWT6000000?currentPage=1&filter=&nextPageOffset=0&pageSize=60&sortBy=relevance'
req = urllib3.PoolManager()
res = req.request('GET', url)
soup = BeautifulSoup(res.data, 'html.parser')
soup
Estoy intentando obtener el nombre y el precio del producto. Pero el uso soup.findAll('div', {'data-testid': 'product_name'})
no funciona.
El problema aquí es que el nombre y el precio del producto son atributos de un enlace en la <a\>
etiqueta. Incluso con soup.findAll('a')
no obtengo nada:[]
Los datos se extraen dinámicamente de una etiqueta de secuencia de comandos. Como javascript no se ejecuta con solicitudes, esta información permanece dentro de la etiqueta del script y no está presente donde está buscando.
Puede regexizar la cadena que contiene la información relevante, analizar con json y crear un dictado de la siguiente manera:
import requests, re, json
r = requests.get('https://www.carrefourkuwait.com/mafkwt/en/Frozen-Food/c/FKWT6000000?currentPage=1&filter=&nextPageOffset=0&pageSize=60&sortBy=relevance',
headers = {'User-Agent':'Mozilla/5.0'})
data = json.loads(re.search(r'(\{"prop.*\})', r.text).group(1))
info = {i['name']:str(i['originalPrice'])+ ' '+ i['currency'] for i in data['props']['initialState']['search']['products']}
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras