Obtenga data-testid y atributos de html usando Beautifulsoup

smerllo

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:[]

ingrese la descripción de la imagen aquí ¿Podrías ayudarme con esto?

QHarr

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

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Obtenga el valor de los atributos HTML usando Puppeteer

Obtenga una lista de atributos data- * usando javascript / jQuery

Extraiga una lista de valores de atributos HTML usando beautifulsoup

Obtenga atributos únicos de XML usando VBA

Encuentre y obtenga atributos de identificación dentro de html y reemplácelo - jQuery

Obtenga el valor href usando atributos de datos HTML5

Obtenga texto de etiquetas br usando beautifulsoup

Obtenga todos los valores de href de una clase en un fragmento de HTML usando beautifulSoup

Obtenga nombres de atributos usando SPARQL de DBpedia

Obtenga nombres de atributos usando SPARQL de DBpedia

Obtenga atributos de clase comentables usando Baum en Laravel

Obtenga todos los atributos de un elemento usando jQuery

Obtenga atributos XML usando PHP

Encuentre y recupere contenido de texto html usando BeautifulSoup

Elimine el nodo actual de HTML y obtenga el HTML final usando DOMDocument php

Obtenga propiedad de contenido de metaetiquetas con BeautifulSoup y Python

¿Cómo puedo probar una casilla de verificación MUI sin etiqueta usando data-testid?

Formularios html de Django: obtenga datos usando get request y pase a otra vista

Obtenga la lista completa de elementos usando BeautifulSoup, Python 3.6

Obtenga texto con comillas dentro de una etiqueta usando BeautifulSoup

extraer atributos de html usando jquery

Python BeautifulSoup, iterando a través de etiquetas y atributos

Obtenga todos los atributos y el valor en XML usando VBA

Obtenga atributos en bloque dinámico usando ezdxf 0.14.1 y Python 3.8

Obtenga contenido de etiquetas HTML usando PHP

Obtenga y actualice el valor del cuadro de texto de los atributos de URL en Bokeh

Obtenga los atributos de los elementos principales de XML usando LINQ

Obtenga los atributos de los elementos principales de XML usando LINQ

Obtenga propiedades y atributos de elementos pasados sin muchas solicitudes de jQuery