PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Python | html oder text datei nach bestimmten zeichen durchsuchen



0u1law
07.08.2020, 22:06
hey liebe community,

ich habe eine html datei und möchte diese durchsuchen undzwar nach ganz bestimmten zeichen oder buchstaben ein beispiel:


´<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta id="e_vb_meta_bburl" name="vb_meta_bburl" content="https://free-hack.com" />
<base href="https://free-hack.com/" /><!--[if IE]></base><![endif]-->
<meta name="generator" content="vBulletin" />

<link rel="Shortcut Icon" href="favicon.ico" type="image/x-icon" />



mal angenommen das oben ist meine html datei. und ich möchte das mein programm
alle zeichen buchstaben und zahlen zwischen von mir festgelegten zeichen abspeichert.
mal angenommen ich lege das wort name und dieses " zeichen fest und will dass wenn
sich diese nebeneinander irgendwo befinden dass dazwischen alles in einer weiteren
textdatei abspeichert wird im obigen fall wäre der Output das Gleichheitszeichen =.

Stichwort: grep


lieber html datei durchsuchen oder diese in eine txt datei umwandeln und diese durchsuchen ?


vielen dank schonmal

mfg 0u1law

Dailox
11.08.2020, 02:58
Also wenn es nur darum geht diese Zeichen abzugreifen, solltest du Regex verwenden. In diesem Fall wäre das dann:


import re
pattern = '"(.*?)"'
string = 'dein html'
#sollte ein Liste mit allen Matches ergeben
result = re.findall(pattern, string)

Für die Erklärung des Pattern empfehle ich einfach mal auf https://regex101.com/ zu gehen und es dort einzugeben.

Wenn du noch mehr mit dem HTML machst als nur das empfehle ich einen richtigen Parser. Kommt natürlich immer drauf an, was man macht. Wenn du wirklich nur diese Strings brauchst ist Regex genau passend dafür und n Parser wäre n overkill. Wann und warum du was verwenden solltest, findest du eigentlich viel online. Hier ein paar Threads auf Stackoverflow:

https://stackoverflow.com/questions/6751105/why-its-not-possible-to-use-regex-to-parse-html-xml-a-formal-explanation-in-la

https://stackoverflow.com/questions/590747/using-regular-expressions-to-parse-html-why-not

https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags