2017-12-17 5 views
0

Um die Webseite, die ich will, zu kratzen, muss ich mich einloggen. Um auf das Login-Formular zuzugreifen, muss ich auf eine Schaltfläche klicken. Diese Schaltfläche macht eine AJAX-Anfrage, die das Formular anzeigt.Einloggen mit Formular geladen mit Ajax (scrapy): selen vs scrapy-splash

Ich benutze Scrapy, mit einer Middleware, um meine Anfrage durch Tor und privoxy zu übergeben.

Ich habe gesehen, ich könnte Selen verwenden, um auf den Knopf klicken, aber dann (wenn ich es richtig verstanden habe), kann ich die Antwort durch Selen mit scrapy analysieren.

Ich habe gesehen, ich könnte scrapy-splash mit scheint eine bessere Option verwenden. Ich habe mehrere Tutos einschließlich dieser one gefolgt, aber ich kann nicht mit einer Methode zu scrapy-splash kommen, um auf eine Schaltfläche klicken, um das Anmeldeformular zu laden und dann dieses Formular zu senden.

Mein settings.py: (Ich habe nicht gesetzt HTTP_PROXY)

DOWNLOADER_MIDDLEWARES = { 
    ... 
    'project.middlewares.ProxyMiddleware': 100,} 

Mein middlewares.py

def set_new_ip(): 
    with Controller.from_port(port=9051) as controller: 
     controller.authenticate(password="***") 
     controller.signal(Signal.NEWNYM) 

set_new_ip() # request new IP from TOR 
request.meta['proxy'] = 'http://127.0.0.1:8118' # this passes the resquest through privoxy 

Antwort