Python Hyperlink extrahieren

Gast #4744372
Lesenswert?
• ▲
▼
Hi,

wie kann ich in meinem Beispiel den herausgesuchten Link darstellen?
1
import codecs
2
from bs4 import BeautifulSoup 
3
from urllib.request import urlopen
4
from tkinter.filedialog import askopenfilename
5

6

7
name = askopenfilename(filetypes =(("Import File", "*.txt"),("All Files","*.*")),title = "")
8

9
f = codecs.open(name, encoding='utf-8')
10

11

12
file_names = []
13

14
for file_name in f.readlines():
15
    file_name = file_name.strip()
16
    if ',' in file_name:
17
        for f in file_name.split(','):
18
            file_names.append(f)
19
    else:
20
        file_names.append(file_name)
21

22

23

24
  
25
    URL = BeautifulSoup (urlopen(file_name), "html.parser")  
26
    result = URL.findAll('a', h ref=True, text='Hinweise')
27
    print (result)

Jetzt wird das aktuell so angezeigt:
[<a h ref="mikrocontroller.net/">Hinweise</ a>]

P.S.:
Wegen dem Forum Spam Filter musste ich
1
h ref
 das Leerzeichen einfügen. Da ist normal kein Leerzeichen enthalten
Gast #4744555
Lesenswert?
• ▲
▼
kann python regex?
1
wget -qO - 'https://www.mikrocontroller.net/topic/408425#new' | perl -ne 'print "$1\n" if /h ref="(.+?)"/'
2

3
/assets/screen-25aeb641e7e36168d501aeefd29f1c157a8c7da8742b07c3f149cdd6b944c7b6.css
4
/assets/print-6a10251861e8c43ce72044862fabaf8065abdfa2c1879af13ac74a64f19d2f67.css
5
/favicon.ico
6
http://www.mikrocontroller.net/topic/408425
7
/newsfeed
8
/feed/global
9
/feed/forum/8
10
/feed/topic/408425
11
/searchplugin.xml
12
//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css
13
/
14
/
15
/articles/AVR
16
/articles/ARM
17
…
18
…

"h ref" auch hier mit spam-lmaa
#4744572
Lesenswert?
• ▲
▼
Ich habe mit diesem BeautifulSoup zwar keine Erfahrung, aber der Doku 
nach (https://www.crummy.com/software/BeautifulSoup/bs4/doc/) würde ich 
vermuten, dass es so gehen müsste:

URL = BeautifulSoup (urlopen(file_name), "html.parser")
    result = URL.findAll('a', h ref=True, text='Hinweise')
    print (result[0].get('href'))

bzw. so, falls mehrere passende URLs enthalten sein können:

URL = BeautifulSoup (urlopen(file_name), "html.parser")
    results = URL.findAll('a', h ref=True, text='Hinweise')
    for result in results:
        print (result.get('href'))

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.