2016-08-08 20 views
0

Ich versuche, einen Untertitel Downloader, der den Namen aller Dateien im Ordner und sucht auf der Website "Subscene.com" macht . Ich bin in der Lage, die HTML-Quelle mit schönen Suppe zu verschrotten, aber ich bin nicht in der Lage, den Link für die ZIP-Datei aus der HTML-Quelle zu bekommen. Das Herunterladen wird durch Klicken auf den "Download Button" ausgelöst.Wie srt Dateien von Websites wie "Subscene.com" mit Python (BeautifulSoup) herunterladen

The higlighted text is the link which the download button redirects to. But how i am supposed to download the file using this link

Es gibt keine explizite Verbindung für die ZIP-Datei zum Download bereit. Gibt es trotzdem dieses Problem zu lösen?

+0

Die Website verwendet wahrscheinlich Klickereignisse auf der Schaltfläche, anstatt einen Downloadlink festzulegen. Wahrscheinlich um zu vermeiden, dass Leute ihre Inhalte leicht scrappen und herunterladen. – brichins

+0

Vielleicht werfen Sie einen Blick auf den JavaScript-Code. Möglicherweise könnten Sie den Link mit einigen Regex bekommen. –

+0

Fügen Sie einen tatsächlichen Link hinzu –

Antwort

1

Sie wollen keine explizite Verbindung zum Download Zip-Datei

Hier ist die Logik, die ich für meine Python-Downloader Skript verwendet

MyFile2= urllib2.urlopen(Your Url) # input link 

MyHtml2 = MyFile2.read() 

soup2 = BeautifulSoup(MyHtml2,"lxml") 

downloaddiv= soup2.find("div", {"class": "download"}) #finding div class for the link 

downloadlink = downloaddiv.find('a') #finding url from div class 

download = 'https://subscene.com/'+downloadlink['href'] #appending the above url to main domain for genrating download 

r = requests.get(download) # Request for downloading 

z = zipfile.ZipFile(io.BytesIO(r.content)) # Opening zip file 

z.extractall() # extracting zip file 

Sie müssen auch diese Header

import zipfile 
from bs4 import BeautifulSoup 
import urllib2 
import lxml.html 
from StringIO import StringIO 
from zipfile import ZipFile 
from urllib import urlopen 
import requests ,io 

Hoffe du verstehst alles richtig !!