jamesb10
Goto Top

Mit wget Website speichern per Linux script in der Form wie es mit Firefox Menu öffnen Seite speichern klappt

Hallo zusammen


Es dreht sich um die Website Fernsehserien.de
von dort möcht ich mir den Episoden guide downloaden.
per Linux shell script
Den besten erfolg habe ich halt nur manuell geschaft über Firefox und seite speichern (siehe Bild)

arrow

Das runter laden ist kein problem aber die richtigen Optionen in dem Befehl zu nehmen schon.
Ist das überhaupt möglich den download über wget zu machen so das ich das Firefoxergebniss bekomme?
Möcht nicht so viel "müll" dabei haben.

arrow2

mit diesem Befehl
wget -r -k -E http://www.fernsehserien.de/arrow/episodenguide

wird mir ohne probleme ein Verzeichnis fernsehserien.de/arrow/episodenguide.html erstellt

nur ist halt das ergebniss nicht das was ich möchte. (siehe Bild)

Ich hoffe das es machbar ist, wenn nicht dann muss ich halt damit leben

Mit freundlichem Gruß

Jamesb10

Content-Key: 315096

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

Printed on: May 6, 2024 at 10:05 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer Sep 13, 2016 updated at 06:11:29 (UTC)
Goto Top
Moin,

Versuch es do halt mal lynx oder elinks mit der Option -dump.

Du has das Probem, daß wget nicht wie einBrowser erstmal sich die komplette Seite reinzieht und dann alles zusammensetzt und ggf noch javascript interpretiert, sondern einfach nur die einzelnen Dateien zieht und speichert.

Wenn Du die html-datei im browser ansehen würdest, würdevsie vermutlich eher so aussehen, wie Du es willst.

lks
Mitglied: 129813
129813 Sep 13, 2016 updated at 11:30:21 (UTC)
Goto Top
Powershell
$w = iwr -Uri "http://www.fernsehserien.de/arrow/episodenguide"  
$rows = ($w.ParsedHtml.getElementsByTagName('table') | ?{$_.classname -eq 'episodenliste'}).getElementsByTagName('tr') | ?{$_.classname -like '*ep-hover*'}  
$rows | %{
    $cols = $_.getElementsByTagName('td')  
    $episodenumber = (($cols | ?{$_.classname -eq 'episodenliste-episodennummer'}).innerText)  
    $episodetitle = ($cols | ?{$_.classname -eq 'episodenliste-titel'}).innerText  
    $episodeEA = ($cols | ?{$_.classname -eq 'episodenliste-ea'}).innerText -replace '^(\d{2}\.\d{2}\.\d{4}).*','$1'  
    $episodeOriginal = ($cols | ?{$_.classname -eq 'episodenliste-originaltitel'}).innerText  
    $episodeOEA = ($cols | ?{$_.classname -eq 'episodenliste-oea'}).innerText  
    [pscustomobject] @{"Nummer" = $episodenumber;"Titel"=$episodetitle;"EA"=$episodeEA;"OriginalTitel"=$episodeOriginal;"OEA"=$episodeOEA}  
}
You can pipe the results into export-csv and then you have an clean Excel-List face-wink

Regards
Member: Jamesb10
Jamesb10 Sep 14, 2016 at 07:29:16 (UTC)
Goto Top
Hallo Lochkartenstanzer
Danke für die Tipp's

Hello highload
Thanks for the answer
This code can I use in a Linux shell script?
I'm not very good at writing the script, do it mostly with copy and paste.
I tried but has somehow not working.

#!/bin/sh
# Mit wget abfragen der Website http://www.fernsehserien.de/....../episodenguide
#
. /etc/default/globals

# go to recordings directory
 
cd "$1"  
#  Serie suchen mit T am Anfang
#  T am Anfang löschen
#  alle Punkte löschen wenn vorhanden
#  Das Hochkomma löschen wenn vorhanden
#  Die leerschritte zwischen den Worten mit Bindestrich ersetzen
#  Den Doppelpunkt ebenfalle durch Bindestrich ersetzen wenn vorhanden
#  Alle Großen Buchstaben auf Kleine ändern
serie=`grep "^T " info.txt | cut -b3- | sed 's/\.//g' | sed "s/'//g" | sed 's/ /-/g' | sed 's/\:/-/g' | sed 's/\([A-Z]\)/\L\1/g' | tr / _`  


# wget -r -k -E http://www.fernsehserien.de/$serie/episodenguide

$w = iwr -Uri "http://www.fernsehserien.de/$serie/episodenguide"  
$rows = ($w.ParsedHtml.getElementsByTagName('table') | ?{$_.classname -eq 'episodenliste'}).getElementsByTagName('tr') | ?{$_.classname -like '*ep-hover*'}  
$rows | %{
    $cols = $_.getElementsByTagName('td')  
    $episodenumber = (($cols | ?{$_.classname -eq 'episodenliste-episodennummer'}).innerText)  
    $episodetitle = ($cols | ?{$_.classname -eq 'episodenliste-titel'}).innerText  
    $episodeEA = ($cols | ?{$_.classname -eq 'episodenliste-ea'}).innerText -replace '^(\d{2}\.\d{2}\.\d{4}).*','$1'  
    $episodeOriginal = ($cols | ?{$_.classname -eq 'episodenliste-originaltitel'}).innerText  
    $episodeOEA = ($cols | ?{$_.classname -eq 'episodenliste-oea'}).innerText  
    [pscustomobject] @{"Nummer" = $episodenumber;"Titel"=$episodetitle;"EA"=$episodeEA;"OriginalTitel"=$episodeOriginal;"OEA"=$episodeOEA}  
}

Unfortunately it happens this error message

wgettest.sh

/usr/sbin/wgettest.sh: 21: =: not found
/usr/sbin/wgettest.sh: 22: Syntax error: "(" unexpected  


Best Regards
Mitglied: 129813
129813 Sep 14, 2016 updated at 07:39:08 (UTC)
Goto Top
This code can I use in a Linux shell script?
No, this is Powershell (Windows), no one knew that you wanted a bash script. You should change the category of your thread to Bash.

I can write you a bash script for this, but not for free face-wink
Member: Lochkartenstanzer
Lochkartenstanzer Sep 14, 2016 at 07:49:15 (UTC)
Goto Top
Zitat von @129813:

This code can I use in a Linux shell script?
No, this is Powershell (Windows), no one knew that you wanted a bash script.

PowerShell on Linux and Open Source!

lks
Mitglied: 129813
129813 Sep 14, 2016 updated at 07:52:07 (UTC)
Goto Top
That's true but the above code has to be totally modified because of iwr.

Regards
Member: Lochkartenstanzer
Lochkartenstanzer Sep 14, 2016 at 07:54:54 (UTC)
Goto Top
Zitat von @129813:

That's true but the above code has to be totally modified because of iwr.


Sorry, /me forgot the smiley. face-smile

lks
Member: Jamesb10
Jamesb10 Sep 14, 2016 at 08:42:24 (UTC)
Goto Top
Sorry !!

I forgot that.

I have entered this information in the question .
In the title , the only change a moderator

Best regards
Member: Lochkartenstanzer
Lochkartenstanzer Sep 14, 2016 updated at 08:58:42 (UTC)
Goto Top
Versuch mal
lynx --dump --width=250 http://www.fernsehserien.de/arrow/episodenguide  >dump-it.txt

wenn Du das dann geschickt mit head, tail und cut und gawk filterst, bekommst Du dann eine fertige CSV. (Bleibt Dir als Übung überlassen).

lks
Mitglied: 129813
129813 Sep 14, 2016 updated at 09:37:57 (UTC)
Goto Top
Zitat von @Jamesb10:
the only change a moderator
You can do this yourself. Edit the original post on the right side choose category.

wenn Du das dann geschickt mit head, tail und cut und gawk filterst, bekommst Du dann eine fertige CSV. (Bleibt Dir als Übung überlassen).
Full ackn.