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-Key: 5969169406

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

Printed on: April 28, 2024 at 09:04 o'clock

Member: tikayevent
Solution tikayevent Feb 13, 2023 at 19:04:28 (UTC)
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.
Member: Crusher79
Solution Crusher79 Feb 13, 2023 updated at 20:05:51 (UTC)
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?
Member: Crusher79
Solution Crusher79 Feb 13, 2023 at 19:49:14 (UTC)
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.
Member: colinardo
Solution colinardo Feb 14, 2023 updated at 09:32:22 (UTC)
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