Seite 1 von 1

Beautiful Soup href Text

Verfasst: Dienstag 3. August 2021, 18:43
von AIIMOOR
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'])

Re: Beautiful Soup href Text

Verfasst: Dienstag 3. August 2021, 19:45
von jaredgerald
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.

Re: Beautiful Soup href Text

Verfasst: Dienstag 3. August 2021, 20:11
von __blackjack__
@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/