2016-08-10 3 views
0

alles ist nur zu benutzen:, wie mein Code-Kolben-Treiber in Python Splitter

from splinter import Browser 
from flask import Flask, request 
from splinter.driver.flaskclient import FlaskClient 
app = Flask(__name__) 

browser = Browser('flask', app=app) 
browser.visit('https://www.google.com') 
print(browser.html) 

, die die 404 html drucken: 404 Not Found

nicht gefunden

Die angeforderte URL wurde nicht auf dem gefunden Server. Wenn Sie die URL manuell eingegeben haben, überprüfen Sie bitte Ihre Rechtschreibung und versuchen Sie es erneut.

es gibt irgendetwas, was ich tun sollte?

+0

haben Sie bekam Firefox, Glaskolben, lxml und cssselect Eingerichtet? –

+0

Ich habe es gelöst, danke – haofly

Antwort

1

Sie erhalten einen Fehler 404, weil Ihre Flask App keine Routen hat.

Ich glaube, der Zweck des Splinter Flask Clients besteht darin, Ihre Flask App zu testen und andere Domains nicht zu testen/anzufordern. Wenn Sie eine andere Domäne mit dem Splinter Flask-Client besuchen, wird einfach die URL von Ihrer Domain angefordert. Sie haben keine Routen für Ihre Flask-App angegeben. Daher reagiert Flask mit einem 404-Fehler.

Hier ist ein Beispiel, das die Splinter Flask Client zeigt, wie funktioniert:

# define simple flask app 
from flask import Flask 
app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return 'Hello, World!' 

@app.route('/<name>') 
def hello_world(name): 
    return 'Hello, {name}!'.format(name=name) 

# initiate splinter flask client 
from splinter import Browser 
browser = Browser('flask', app=app) 

# simple flask app assertions 
browser.visit('http://127.0.0.1:5000') 
assert browser.html == 'Hello, World!' 
browser.visit('http://127.0.0.1:5000/haofly') 
assert browser.html == 'Hello, haofly!' 

# Notice that requesting other domains act as if it's your domain 
# Here it is requesting the previously defined flask routes 
browser.visit('http://www.google.com') 
assert browser.html == 'Hello, World!' 
browser.visit('http://www.google.com/haofly') 
assert browser.html == 'Hello, haofly!' 

Hier ist ein weiterer Test, der zeigt, was wirklich vor sich geht:

from flask import Flask 
app = Flask(__name__) 

@app.errorhandler(404) 
def page_not_found(e): 
    return 'Flask 404 error!', 404 

from splinter import Browser 
browser = Browser('flask', app=app) 

browser.visit('http://www.google.com/haofly') 
assert browser.html == 'Flask 404 error!'