Seite 1 von 1

String-Suche, URL folgen, Datei downloaden

Verfasst: Montag 11. Februar 2019, 22:04
von peacepipe
Hallo Community,

auf einer Webseite wird wöchentlich zu einer bestimmten Zeit eine neue Datei hochgeladen. Die direkte download-URL ist nur über Umwege zu ermitteln, da PHP code die URL anonymisiert.
Um die Download-URL zu ermitteln sind mehrere Schritte notwendig, welche später automatisiert per Script ausgeführt werden sollen:

z.B. http://site.com/liste

Hier findet man im Quellcode etwas wie:

Code: Alles auswählen

<tr class="mediaitem" onclick="window.location.href = '/datei/20'">      #Die Zahl wird wöchentlich hochgezählt
Daraus müsste man sich nun eine neue URL zusammenbauen:
http://site.com/liste/20

Von hier aus erreicht man die nächste Seite mit einem iFrame:

Code: Alles auswählen

<div align="center"><div id="embed">
<iframe width="735" height="414" src="http://www.nocheineseite.com/bla.html" frameborder="0" scrolling="no" allowfullscreen></iframe>
</div>
Und zu guter Letzt findet man die Datei:
file: 'https://bliblablu,com/video.mp4',

Diese soll heruntergeladen und umbenannt werden: <File>_Nummer.mp4


Das mehrfache browsing macht mir genauso zu schaffen wie das suchen der Strings.


Hier ist mein erster Ansatz, damit finde ich erstmal nur die Strings innerhalb der <tr></tr> HTML tags :

Code: Alles auswählen

from BeautifulSoup import BeautifulSoup

import urllib2
import re

from urllib import FancyURLopener


class MyOpener(FancyURLopener):
    version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'

mopen = MyOpener()

def getLinks(url):
	pageFile = mopen.open(url)
	pageHtml = pageFile.read()
	pageFile.close()
	soup = BeautifulSoup("".join(pageHtml))
	#sAll = soup.findAll("li")
	sAll = soup.findAll("tr", attrs = {'class': 'mediaitem'})
	
	for href in sAll:
		print href

print( getLinks("http://site.com/liste") )
Möglicherweise hat jemand in diesem Gebiet mehr Erfahrung als ich und hat sowas schon in einer Ähnlichen Form programmiert. Ich bin für jede Hilfe dankbar!


VG
PeacePipe

Re: String-Suche, URL folgen, Datei downloaden

Verfasst: Montag 11. Februar 2019, 23:46
von sparrow
Bite definiere außerhalb von Funktionen nur Konstanten und schreibe deren Namen GROSS.
Variablen sollten verdeutlichen, was sie sind. Länge frisst kein Brot. Statt sAll wäre trs (tr + das Plural s) wohl verständlicher.

Um an den Inhalt des href-Attributs zu kommen, verwende .get('href') auf das entsrpechende Element.

Die Dokumentation ist da hilfreich.