Zum ersten Mal habe ich eine API erstellt, die mit json mithilfe von Flask und Heroku of Python Scraped-Informationen zurückgibt. Daher möchte ich die Methode zusammenfassen, die ich damals durchgeführt habe.
Der Umgebungsaufbau bis *** HelloWorld *** mit Heroku ist der erste Teil Re: Heroku Leben - Umgebung beginnt mit Flask von Null und der Hallo Welt ~ Beim Der Code der API zum Kratzen mit Selen und der schönen Suppe, die dieses Mal für Heroku bereitgestellt werden soll, und seine Erklärung finden Sie im zweiten Teil. Re: Heroku-Leben ab Null mit Flask ~ Selen & PhantomJS & Beautifulsoup ~ Da es geschrieben steht, sehen Sie es bitte zusammen.
Dieses Mal werde ich schreiben, wie man mit Selenium und PhantomJS mit SlideShare als Thema kratzt.
*** Da es lang wurde, als ich es in einem Artikel zusammenstellte, ist der Inhalt des Programms, das von Selen betrieben und abgekratzt wird, in den zweiten Teil unterteilt. *** ***
Wieder müssen wir den aktuellen Dateistatus erhöhen, um ihn auf Heroku bereitzustellen.
$ pip freeze > requirements.txt
Bereiten Sie eine Datei vor, die angibt, welche Version der Laufzeit Heroku bei Verwendung von Python verwendet.
$ echo "python-3.5.2" >> runtime.txt
Wenn Sie hierher kommen, genau wie beim letzten Mal
$ git init
#Setze git in den Ordner
$ git add api.py Procfile requirements.txt runtime.txt
#Alles hinzufügen
#Siehe unten.Enthält keine Buildpacks
$ git commit -m "firstcommit"
#verpflichten
$ heroku login
#Bei heroku anmelden Geben Sie die registrierte E-Mail-Adresse ein und übergeben Sie
$ heroku create slideshare-api
#Erstellen Sie ein neues Projekt für Heroku
#Sie können nicht denselben Projektnamen verwenden. Ändern Sie ihn daher in diesem Fall.
$ git push heroku master
#Wechseln Sie zu dem von Ihnen erstellten Heroku-Projekt
Bei Heroku funktioniert es nicht, da PhantomJS zu diesem Zeitpunkt noch nicht fertig ist.
Nach dem Hochladen der App auf Heroku müssen Sie die Einstellungen ändern, um buildpack-multi zu verwenden, das sowohl PhantomJS- als auch Python-Buildpacks verwenden kann. Beschreiben Sie, welches Buildpack in der Datei ".buildpacks" verwendet werden soll, ändern Sie die Einstellungen mit dem Befehl und drücken Sie dann auf "Heroku". Führen Sie alle drei Befehle aus.
$ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-multi.git
$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-multi.git
$ heroku config:add LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/lib:/app/vendor/phantomjs/lib
https://github.com/heroku/heroku-buildpack-python.git
https://github.com/stomita/heroku-buildpack-phantomjs.git
Wenn Sie dies tun können, schieben Sie es zu Heroku!
$ git add .buildpacks
$ git commit -m "add buildpacks"
$ git push heroku master
Referenz: Dieses Mal mache ich es auf ähnliche Weise wie dieses.
Ich habe eine andere Methode auf dieser Seite geschrieben, aber sie hat bei mir nicht funktioniert.
Stellen Sie sicher, dass es funktioniert
gerührt! !! !! !!
Siehe auch den im vorherigen Artikel erwähnten Fehler. Bitte denken Sie daran, dass der Befehl zum Schreiben in die Konfiguration von Heroku usw. nicht in Heroku geschrieben wurde, es sei denn, er wird in Heroku übertragen.
①: Ist Herokus App-Framework auf Multipack und Buildpacks auf "https: // github.com / heroku / heroku-buildpack-multi.git" eingestellt?
Wenn nicht, fügen Sie buildpack-multi zu heroku hinzu ”und setzen Sie` `buildpack-multi zu heroku. Es scheint, dass der`
Teil nicht gut gemacht ist, also nachdem Sie den Befehl erneut eingegeben haben, Bitte ändern Sie eine Datei und schieben Sie sie zurück zu Heroku.
②: Überprüfen Sie mit Heroku-Protokollen Wie ich im vorherigen Artikel geschrieben habe, wenn Sie eine Fehlermeldung erhalten
$ heroku logs
Bitte erkundigen Sie sich bei.
driver = webdriver.PhantomJS()Wenn die Fehlermeldung den Teil oder die Stelle anzeigt, an der das Element zum ersten Mal mit dem Treiber angegeben wird, können Phantomjs auf der Heroku-Seite des Programms anscheinend nicht gut verwendet werden.**①**Überprüfen Sie die gleiche Stelle wie oder versuchen Sie, den Teil zu treffen, an dem der PhantomJS-Pfad erneut auf Heroku eingestellt ist, und drücken Sie dann auf Heroku.
③: Überprüfen Sie, ob es in Heroku einen Anbieter gibt
Lassen Sie uns auf den Speicherbereich von Heroku selbst zugreifen.
$ heroku run bash
Sie können wie ssh mit auf den Heroku-Server zugreifen. Wenn phantomJS erfolgreich in Heroku ist
~ $ ls api.py Procfile requirements.txt runtime.txt vendor
*** Anbieter *** wird so generiert und PhantomJS ist darin enthalten.
Wenn dies nicht der Fall ist, funktioniert es nicht. Es ist daher eine gute Idee, dies zu überprüfen.
## Nachwort
Obwohl es lokal funktioniert, gibt es viele Stellen, an denen PhantomJS zu Heroku erhoben wird, und es funktioniert auf der Heroku-Seite nicht gut, daher denke ich, dass es stecken bleiben kann, aber bitte geben Sie Ihr Bestes!
Auch wenn es Verbesserungen oder Fehler gibt, würden wir uns freuen, wenn Sie im Kommentarbereich darauf hinweisen könnten.
Twitter:@ymgn_ll
Recommended Posts