adminst
Goto Top

Regex URL aus String

Hallo zusammen

Ich möchte gerne die URLs aus der Phisthank .csv in einem Skript weiterverwenden und diese via Regex rausfischen. Nur ist regex überhaupt nicht mein Gebiet:

Ausgangslage .csv File.

phish_id,url,phish_detail_url,submission_time,verified,verification_time,online,target
8031814,https://superbompreco.com/portal/,http://www.phishtank.com/phish_detail.php?phish_id=8031814,2023-02-09T18:05:22+00:00,yes,2023-02-09T18:51:52+00:00,yes,Other

Als Beispiel. Die Linie 1 interessiert nicht. Jedoch der Inhalt nach dem ersten Komma bis zum zweiten Komma.

Wie kann man dies am Besten via Regex herausfiltern?

Danke und Gruss
adminst

Content-ID: 5969169406

Url: https://administrator.de/contentid/5969169406

Ausgedruckt am: 21.11.2024 um 21:11 Uhr

tikayevent
Lösung tikayevent 13.02.2023 um 20:04:28 Uhr
Goto Top
Da es eine csv-Datei ist, braucht man kein Regex für, sondern eine Schleife und split. Erste Zeile ignorieren und dann im Array die Spalte 1 (die erste wäre 0).

Ist deutlich ressourcenschonender und schneller als ein Regex-Vergleich.
Crusher79
Lösung Crusher79 13.02.2023 aktualisiert um 21:05:51 Uhr
Goto Top
$fetchedURL = Import-CSV -Path C:\temp\url.txt -Delimiter ","  
$fetchedURL.url

Ergebnis:
PS C:\Users\Crusher> $fetchedURL = Import-CSV -Path C:\temp\url.txt -Delimiter ","  
$fetchedURL.url
https://superbompreco.com/portal/
https://google.com/portal/

Hab mal 2. URL reingedingst. So z.B. könnte es gehen ....

PS: Oder welche Sprache soll es sein? PowerShell gibs ja auch für Linux. Bzw. andere Alternativen. PHP kann auch mit CSV umgehen.

Wo sind wir hier überhaupt?
Crusher79
Lösung Crusher79 13.02.2023 um 20:49:14 Uhr
Goto Top
Zitat von @tikayevent:

Da es eine csv-Datei ist, braucht man kein Regex für, sondern eine Schleife und split. Erste Zeile ignorieren und dann im Array die Spalte 1 (die erste wäre 0).

Ist deutlich ressourcenschonender und schneller als ein Regex-Vergleich.

Ja naja. Siehe Import-CSV Ergebnis wäre

IsPublic IsSerial Name                                     BaseType                                                                                    
-------- -------- ----                                     --------                                                                                    
True     True     Object                                 System.Array     


Array... Damit wären wir schon fast fertig.
colinardo
Lösung colinardo 14.02.2023 aktualisiert um 10:32:22 Uhr
Goto Top
Servus @adminst.
Leider fehlt die Angabe deiner verwendeten Programmiersprache.
Wenn per PHP, z.B. mit der XML von Phishtank
$xml = simplexml_load_file("phishtank.xml");  
$entries = $xml->xpath('//entry/url');  
foreach($entries as $url){
	echo $url . "<br/>";  
}
geht aber genauso auch mit der JSON Variante von deren Seite (habe nur mangels api key gerade keine json zur Hand für die Ausgabe der URL Objekte, solltest du aber mit Ausgabe des Arrays schnell selbst herausfinden können)
$json = json_decode(file_get_contents("phishtank.json"),true);  
Da brauchst du nicht mit CSV-Dateien oder Regex hantieren, natürlich geht das beides auch, bspw. mit CSV
if (($handle = fopen("phishtank.csv","r")) !== FALSE){  
	$cnt = 0;
	while(($data = fgetcsv($handle,null,",")) !== FALSE){  
		if ($cnt > 0){
			echo $data[1] . "<br/>";  
		}
		$cnt++;
	}
}
CSV oder Regex ist hier aber vollkommen überflüssig da genügend Formate vorhanden sind die sich anständig parsen lassen face-wink.

Grüße Uwe