2 votes

gratter l'intérieur de l'iframe avec Beautiful soup

Je travaille sur le scraping en utilisant Beautifulsoup.

Mais comme la cible qui est le prix est en iframe et ne peut donc pas atteindre la cible. L'objectif est le suivant.

<span class="last">1,025.5</span>

Pouvez-vous m'indiquer comment obtenir la cible ? Mon codage est le suivant.

stock = ""

import requests
from bs4 import BeautifulSoup

url = 'https://www.xxxxxx.com/jp/ir/'
html = requests.get(url)

soup = BeautifulSoup(html.text,"html.parser")
span = soup.find_all("span")

for tag in span:
try:
    string_ = tag.get("class").pop(0)

    if string_ in "last":
        stock = tag.string
        break
except:
    nodata = ""
    print (nodata)
    break

print(stock)

0voto

Quentin Points 325526

Beautiful soup est un analyseur HTML simple. Ce n'est pas une enveloppe autour d'un navigateur.

Si vous souhaitez un contenu qui ne fait pas partie du document que vous avez demandé (par exemple, parce qu'il est généré par JavaScript ou dans un document différent chargé dans une iframe), il ne sera pas automatiquement récupéré pour vous.

Pour récupérer les données de l'iframe, vous devrez lire le fichier src du document que vous avez, puis faites une nouvelle requête HTTP vers l'URL qui se résout, puis analysez ce document.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X