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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren