Seite 1 von 1

Links aus HTML auslesen

Verfasst: Montag 19. Februar 2007, 20:28
von danims
Hallo

Nach längerem Suchen bin ich trotzdem nicht fündig geworden.

Ich möchte sämtliche "Link-Konstrukte" einer HTML Seite auslesen.

Die Datei auslesen funktioniert soweit:

Code: Alles auswählen

import urllib
import re

fp = urllib.urlopen(http://........html)
data = fp.read()
Jetzt hat die html seite aber unterschiedliche anzahl an hyperlinks:

<a href="LINK">BESCHREIBUNG</a>

Die kursiv-fetten Angaben möchte ich irgendwie in einem Array haben.

Hat jemand eine Idee oder hat jemand ein Scriptbeispiel zur hand für mich, Python anfänger :-)?

Besten Dank!

Verfasst: Montag 19. Februar 2007, 20:41
von SigMA
benutzt die Forumsuche!

Dafür gibt es 100% eins!

SigMA

Verfasst: Montag 19. Februar 2007, 20:45
von rayo
HI

Beautiful Soup ist was für dich

Gruss

Re: Links aus HTML auslesen

Verfasst: Montag 19. Februar 2007, 20:45
von sape
Hi und willkommen im Forum:

Lade dir BeautifulSoup runter und lese dir die documentation durch. Das Modul ist richtig gut und intuitive (IMHO) benutzbar :) -- Selten so ein einfaches zu benutzendes Modul gesehen, für ein nicht so ganz Triviales Thema.

lg

Verfasst: Montag 19. Februar 2007, 20:45
von danims
ja, den da: http://www.python-forum.de/topic-3916.h ... s+auslesen

aber damit komm ich irgendwie auch nicht weiter :-(

Verfasst: Montag 19. Februar 2007, 23:32
von gerold
Hallo danims!

Ich bin mal so frei... :P

http://www.python-forum.de/topic-4664.html

mfg
Gerold
:-)

Verfasst: Freitag 15. Februar 2008, 21:10
von stasikz
Hallo Community!

ich stehe wieder vor einem Problem. Ich würde gerne die Links aus einer HTML datei auslesen, die als href="....." nur bestimme Adressen haben. Also nur die Adressen rausfiltern, die in meine Suchmaske passen.
Ich hab schon dieses kleine Tutorial angesehen, aber leider kann ich das noch nicht auf mein Problem anwenden :(
Bitte um die Hilfe

Edit: habs doch hingekriegt. ich hätte besser von Anfang an die BeautifulSoup Anleitung zu ENDE lesen sollen :)
hab das so gemacht:

Code: Alles auswählen

import re
from BeautifulSoup import BeautifulSoup, SoupStrainer

html_file = open('datei.html') 
soup = html_file.read()
html_file.close()

links = SoupStrainer('a', href=re.compile('www.bestimme/adresse/de/'))
adressen = [adr for adr in BeautifulSoup(soup, parseOnlyThese=links)]

for i in adressen:
    print i