J'ai un problème concernant une balise d'enveloppe, qui n'a aucun identifiant ni classe.
L'approche plus large consiste à extraire le texte entre "Article 1. Entreprise" à "Point 1a. Facteurs de risque" du lien ci-dessous. Toutefois, je ne peux pas comprendre un moyen de trouver cette partie, car la distance qu'elle est dans, n'a pas d'identification ni de classe I ne peut rechercher (seul le parent div se trouve la portée: Ce code ne fonctionne pas, tristement: Voici mon approche: p> div = soupe. ("div", {"id": "dynamic-xbrl-formulaire"}) code>.
#text = unicodedata.normaliser ('NFKD', soupe .get_text ()). Remplacez ('\ n', '') code> p>
url = 'https://www.sec.gov/ix?doc=/Archives/edgar/data/934549/000093454919000017/actg2018123110-k.htm#s62CF0831C63E51C2BEF33F4163F1DE65'
raw = requests.get(url)
soup = BeautifulSoup(raw.content)
div = soup.find("span", {"id": ... })
print(div.txt)
3 Réponses :
Le contenu de cette page est chargé à partir de JavaScript code>, vous ne pouvez pas utiliser
beauxoup code> pour cela. Utiliser
sélénium code> à cet effet. P>
Merci pour la réponse. Savez-vous quelle fonction j'ai besoin? Quelque chose avec "trouver"?
Dans mon cas, je vérifie à l'aide de l'identifiant de la balise SPAN, cette mine résolue:
import requests from bs4 import BeautifulSoup URL = 'https://www.facebook.com/hackerv728' page = requests.get(URL) soup = BeautifulSoup(page.content, 'html.parser') titles = soup.find_all('span', id='fb-timeline-cover-name') for title in titles: print(title.text.strip())
Merci, mais n'a pas travaillé. De plus, le Div.Text n'est pas une méthode valide.
Comme @gagan dit, le contenu du site Web est chargé de JavaScript. Vous devez utiliser à l'aide de sélénium est plus puissant que l'autre fonction Python .J'ai utilisé ChromeRiver, donc si vous n'installez pas encore, vous pouvez l'installer dans P> http://chromedriver.chromium.org/ p>
blockQuote> Vous pouvez également obtenir toutes les sources p> sélénium
Hey, j'ai essayé l'approche de sélénium aussi bien avant, mais avec Find_elements_by_xpath code>, mais je n'ai pas été capable avec ce lien particulier (sec.gov) pour trouver n'importe quel div avec "Classe: Col-SM-12" ou "id = dynamic-xbrl-forme". Bien que la DIV avec ces attributs soit clairement dans le code HTML. Pour être spécifique, j'ai utilisé ce code:
pilote.find_element_by_xpath ("// div [@ @ Id = 'dynamic-xbrl-formulaire']") code> mais je n'ai que "incapable de localiser l'élément" les erreurs. Habituellement, cela me donne le bon résultat. Malheureusement, la plage que je cherche réellement n'a ni "id" ni "classe"!