Seite 1 von 1
Wie bekomme ich diese Nummer mit beautifulsoup?
Verfasst: Montag 16. März 2020, 12:35
von DeF3c
Hallo ich habe folgendes Problem:
Ich versuche diese Nummer:
in dem Tag zu bekommen. Ich habe bereits:
Code: Alles auswählen
soup = BeautifulSoup(bot.driver.page_source, "lxml")
n = soup.find('span', {'class': 'g47SY'})
)
Allerdings returned mir das nur
Ich habe danach schon in anderen Foren gesucht, normalerweise sollte ich
benutzen könnten, was aber nicht möglich ist. Irgendwelche Hilfe?
Sollte es helfen, die Internetseite, bei der ich es versuche:
https://www.instagram.com/explore/tags/apple/
Cheers
Re: Wie bekomme ich diese Nummer mit beautifulsoup?
Verfasst: Montag 16. März 2020, 12:42
von __blackjack__
@DeF3c: Also bei mir funktioniert das:
Code: Alles auswählen
In [13]: soup.find("span", "g47SY")
Out[13]: <span class="g47SY ">30,477,004</span>
In [14]: soup.find("span", "g47SY").text
Out[14]: '30,477,004'
Re: Wie bekomme ich diese Nummer mit beautifulsoup?
Verfasst: Montag 16. März 2020, 12:46
von DeF3c
__blackjack__ hat geschrieben: Montag 16. März 2020, 12:42
@DeF3c: Also bei mir funktioniert das:
Code: Alles auswählen
In [13]: soup.find("span", "g47SY")
Out[13]: <span class="g47SY ">30,477,004</span>
In [14]: soup.find("span", "g47SY").text
Out[14]: '30,477,004'
Bei mir seltsamerweise nicht ich kann das .text nicht einfügen, da es sont, in meinem Beispiel, in PyCharm Gelb hinterlegt ist mit dem Error: Unresolved attribute reference 'text' for class 'PageElement'
Re: Wie bekomme ich diese Nummer mit beautifulsoup?
Verfasst: Montag 16. März 2020, 12:51
von Jankie
Also .text funktioniert bei mir auch. Versuch mal .get_text()
Re: Wie bekomme ich diese Nummer mit beautifulsoup?
Verfasst: Montag 16. März 2020, 12:53
von DeF3c
Jankie hat geschrieben: Montag 16. März 2020, 12:51
Also .text funktioniert bei mir auch. Versuch mal .get_text()
Wenn du
Code: Alles auswählen
nposts = soup.find('span', {'class': 'g47SY'}).get_text()
meinst, funktioniert das auch nicht
Re: Wie bekomme ich diese Nummer mit beautifulsoup?
Verfasst: Montag 16. März 2020, 12:54
von __blackjack__
@DeF3c: Heisst das Du glaubst da der IDE und hast das gar nicht wirklich ausprobiert? Statische Analyse von Quelltext von dynamischen Programmiersprachen ist nicht 100%ig, da kann sich die IDE durchaus auch mal irren. Warum auch immer die IDE denken mag das `BeautifulSoup.find()` etwas vom Typ `PageElement` liefert: das stimmt nicht:
Code: Alles auswählen
In [15]: type(soup.find("span", "g47SY"))
Out[15]: bs4.element.Tag
Re: Wie bekomme ich diese Nummer mit beautifulsoup?
Verfasst: Montag 16. März 2020, 12:56
von DeF3c
__blackjack__ hat geschrieben: Montag 16. März 2020, 12:54
@DeF3c: Heisst das Du glaubst da der IDE und hast das gar nicht wirklich ausprobiert? Statische Analyse von Quelltext von dynamischen Programmiersprachen ist nicht 100%ig, da kann sich die IDE durchaus auch mal irren. Warum auch immer die IDE denken mag das `BeautifulSoup.find()` etwas vom Typ `PageElement` liefert: das stimmt nicht:
Code: Alles auswählen
In [15]: type(soup.find("span", "g47SY"))
Out[15]: bs4.element.Tag
Das ist mir jetzt ein bisschen Peinlich, du hattest Recht. Ich habe mich zu sehr auf die IDE verlassen. Vielen Dank!
Re: Wie bekomme ich diese Nummer mit beautifulsoup?
Verfasst: Montag 16. März 2020, 12:56
von sparrow
Wir sollten anfange vor PyCharm zu warnen

Re: Wie bekomme ich diese Nummer mit beautifulsoup?
Verfasst: Montag 16. März 2020, 12:58
von DeF3c
sparrow hat geschrieben: Montag 16. März 2020, 12:56
Wir sollten anfange vor PyCharm zu warnen
Aber es sieht so schöön aus, und ich muss auch ehrlich sagen, dass mir der Package Installer sehr gefällt. Alternativen habe ich mir ehrlich gesagt, wenig angeschaut, dennoch hat mich diese sofort angesprochen.
Re: Wie bekomme ich diese Nummer mit beautifulsoup?
Verfasst: Montag 16. März 2020, 13:26
von __blackjack__
`PageElement` ist die gemeinsame Elternklasse von `Tag` und `NavigableString` und `find()` kann beides liefern. Vielleicht hat das die „type inference“ von PyCharm ja dazu gebracht anzunehmen das `find()` etwas vom Typ `PageElement` liefert, statt etwas vom Typ ``Union[Tag, NavigableString, None]``.