2016-03-06 48 views
5

C'è una grande copiatrice del sito web che vorrei raggruppare nel mio eseguibile, creato con python 3 e py2exe.
Sul sito ufficiale HTTrack nella sezione delle FAQ si dice che ci sia is a DLL/library version available.
Ma non so da dove iniziare, o anche come usare la DLL una volta che sarà messa in bundle nell'eseguibile.
Quindi, come posso raggruppare httrack in un eseguibile di python 3 e usarne le funzionalità per iniziare a copiare siti Web?
Edit:
ho trovato httrack-py 0.6.1 ma supporta solo Python 2 e utilizza una vecchia versione di HTTrack, quindi non posso usare questo per il mio eseguibile.Come raggruppare httrack in un eseguibile python 3

risposta

1

come la vedo io si hanno 2 opzioni:

  1. Si potrebbe provare a convertire httrack-py per Python 3 seguendo these istruzioni, ma di solito è mai una buona idea di lavorare con obsoleti e non più mantenuto 3a parte biblioteca.

  2. Poiché HTTrack ufficiale fornisce DLL, è possibile utilizzare la libreria direttamente dal codice python 3. Una domanda StackOverflow How can I use a DLL file from Python? fornisce un'ottima risposta su come fare proprio questo.

    Il py2exe limiti a creare un programma di installazione di Windows che avrà cura dei dettagli di installazione interprete Python e il codice python al sistema di destinazione in modo che l'utente finale non ha bisogno di trattare con altro che un solo .exe . Ciò significa che devi includere DLL di terze parti nel configuration - Direi che le DLL di terze parti devono essere inserite in "data_files" (tuttavia non sono stato testato personalmente).

+0

So come raggruppare DLL nel mio eseguibile, ma non so quale DLL o DLL da impacchettare e quali funzioni utilizzare per il mirroring di un sito Web. Sarebbe utile se tu potessi raggruppare la dll te stesso e provare a rispecchiare un sito web con esso. – yuval

+0

btw. cosa rende httrack un requisito? Se l'obiettivo era copiare semplicemente alcuni contenuti statici di siti Web e configurare server http per servirli, questo non richiederebbe molto del codice Python e sarebbe portatile come python. Basta chiedere perché l'uso di questa DLL richiede la lettura della loro documentazione sulle interfacce nella loro DLL ecc. Ad es. per rispondere alla domanda "quali funzioni utilizzare" richiede la comprensione di ciò che alla fine si cerca di ottenere. –