Beautiful Soup href Text

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
AIIMOOR
User
Beiträge: 1
Registriert: Dienstag 3. August 2021, 18:24

Ich möchte aus folgenden Code den Text nach dem href auslesen. Bisher komme ich immer nur an das href selber ran.

Code: Alles auswählen

				<h2 class="site-heading">
					<a href="/test-sites/e-commerce/allinone">
						E-commerce site
					</a>
				</h2>
					
Mit folgenden Code habe ich es bisher versucht, aber wie gesagt, bekomme ich immer nur, das href an für sich, aber nicht den Text "E-commerce site".
Wie kann ich das hinbekommen?

Code: Alles auswählen

from bs4 import BeautifulSoup
import requests
url = 'https://webscraper.io/test-sites'
r = requests.get(url)
r_html = r.text

soup = BeautifulSoup(r_html)

for a in soup.find_all('a', href=True):
    print ("Found the URL:", a['href'])
jaredgerald
User
Beiträge: 3
Registriert: Dienstag 3. August 2021, 18:24

Hi,

ich bin aktuell an einem ähnlichen fall für ein programm. Habe kaum erfahrung in python, aber meiner ansicht nach suchst du href und er gibt dir href zurück. Was du brauchst ist ein zeiger auf die position von href und dann schneidest du mit stringoperationen alles danach zwischen den ““ aus.

Bin das ganze auch so angegangen, aber ich werde mich mit regex beschäftigen. Was ich dir auch empfehle.
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@jaredgerald: Schlechte Empfehlung. HTML kann man nicht sinnvoll mit regulären Ausdrücken verarbeiten und es wird ja bereits ein HTML-Parser verwendet. Kein Grund da einen Rückschritt zu machen. Die kanonische SO-Anwort zu dem Thema findet sich hier: https://stackoverflow.com/questions/173 ... ined-tags/

@AIIMOOR: Du hast die Dokumentation von BeautifulSoup gelesen? https://www.crummy.com/software/BeautifulSoup/bs4/doc/
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten