redirect/überprüfungs Problem
Verfasst: Donnerstag 13. Januar 2022, 20:02
Hallo ich bin relativ neu in Python und möchte ein Konsolenprogramm schreiben, welches für mich automatisch Animefolgen downloaded.
Ich habe mich für die Website https://anicloud.io/ entschieden weil sie legal ist/sein sollte.
ich habe bereits eine "such function" geschrieben, die mithilfe von requests_html und lxml arbeitet.
außerdem habe ich eine funktion die alle Episoden "holt"
Und eine Function die alle Staffeln "holt"
Ich habe auch eine Function die Videos downloaded
Also brauche ich nur noch eine Funktion mit der ich die Video Url bekomme.
Ich habe mich für den Dienst https://vidoza.net/ entschieden weil man von dort sehr einfach den Link zur mp4 Datei bekommen kann.
Das Problem ist, dass ich gar nicht erst auf die Seite komme weil ich "redirected" und/oder auch "überprüft" werde.
Kann man vielleicht den "redirect" umgehen?
Oder Gibt es ein Modul welches das ermöglicht?
Ich würde mich Freuen, wenn mir Jemand helfen könnte.
Danke schonmal im vor raus
Ich habe mich für die Website https://anicloud.io/ entschieden weil sie legal ist/sein sollte.
ich habe bereits eine "such function" geschrieben, die mithilfe von requests_html und lxml arbeitet.
Code: Alles auswählen
searchUrlResults = []
searchNameResluts = []
def searchAnime(animeName):
page_url = "https://anicloud.io/search?q=" + animeName.replace(" ", "+")
html_parser = etree.HTMLParser()
session = HTMLSession()
resp = session.get(page_url)
resp.html.render()
web_page = resp.html.html
str_io_obj = StringIO(web_page)
dom_tree = etree.parse(str_io_obj, parser=html_parser)
searchResults_list = dom_tree.xpath('//*[@id="searchResults"]')
session.close()
for a in searchResults_list:
listChildren = a.getchildren()
for c in listChildren:
cChildren = c.getchildren()
for cc in cChildren:
episodeUrl = cc.get("href")
if episodeUrl.startswith("/anime/stream/"):
if "staffel" in str(episodeUrl):
episodeUrl = "".join([j for j in episodeUrl if not j.isdigit()])
episodeUrl = episodeUrl.replace("/staffel-/episode-", "")
if episodeUrl not in searchUrlResults:
searchUrlResults.append(episodeUrl)
episodeUrl = episodeUrl.replace("-", " ")
episodeUrl = episodeUrl.replace("/anime/stream/", "")
if episodeUrl not in searchNameResluts:
searchNameResluts.append(episodeUrl)
Code: Alles auswählen
def getEpisodes(url):
episodes = []
html_parser = etree.HTMLParser()
session = HTMLSession()
resp = session.get(url)
resp.html.render()
web_page = resp.html.html
str_io_obj = StringIO(web_page)
dom_tree = etree.parse(str_io_obj, parser=html_parser)
selectedElement = dom_tree.xpath('//*[@id="stream"]/ul[2]')
session.close()
for a in selectedElement:
aListChildren = a.getchildren()
for b in aListChildren:
bListChildren = b.getchildren()
for c in bListChildren:
link = c.get("href")
if isinstance(link, str):
episodes.append(link)
return episodes
Code: Alles auswählen
def getEpisodes(url):
episodes = []
html_parser = etree.HTMLParser()
session = HTMLSession()
resp = session.get(url)
resp.html.render()
web_page = resp.html.html
str_io_obj = StringIO(web_page)
dom_tree = etree.parse(str_io_obj, parser=html_parser)
selectedElement = dom_tree.xpath('//*[@id="stream"]/ul[2]')
session.close()
for a in selectedElement:
aListChildren = a.getchildren()
for b in aListChildren:
bListChildren = b.getchildren()
for c in bListChildren:
link = c.get("href")
if isinstance(link, str):
episodes.append(link)
return episodes
Code: Alles auswählen
def downloadFile(fileName, downloadLink):
print("connecting...")
r = requests.get(downloadLink, stream=True)
print("CONNECTED")
with open(fileName, "wb") as f:
total_length = int(r.headers.get('content-length'))
for ch in progress.bar(r.iter_content(chunk_size = 255), expected_size=(total_length/255)):
if ch:
f.write(ch)
print("DOWNLOAD FINISHED " + fileName)
Ich habe mich für den Dienst https://vidoza.net/ entschieden weil man von dort sehr einfach den Link zur mp4 Datei bekommen kann.
Das Problem ist, dass ich gar nicht erst auf die Seite komme weil ich "redirected" und/oder auch "überprüft" werde.
Kann man vielleicht den "redirect" umgehen?
Oder Gibt es ein Modul welches das ermöglicht?
Ich würde mich Freuen, wenn mir Jemand helfen könnte.
Danke schonmal im vor raus
