2016-08-10 1 views
0

tout mon code est juste:comment utiliser le pilote flacon en écharde python

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) 

qui impriment 404 html: 404 Not Found

Introuvable

L'URL demandée n'a pas été trouvée sur la serveur. Si vous avez entré l'URL manuellement, vérifiez votre orthographe et réessayez.

est ce que je devrais faire?

+0

Avez-vous Firefox, Flask, lxml et cssselect installée? –

+0

Je l'ai résolu, merci – haofly

Répondre

1

Vous obtenez une erreur 404 car votre application Flask n'a pas de routes. Je crois que le but du client Splinter Flask est de tester votre application Flask, pas de tester/demander d'autres domaines. La visite d'un autre domaine avec le client Splinter Flask demandera simplement l'URL de votre domaine. Vous n'avez spécifié aucune route pour votre application Flask, donc Flask répond avec une erreur 404.

Voici un exemple qui montre comment le client Splinter Flask fonctionne:

# 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!' 

Voici un autre test qui montre ce qui se passe réellement:

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!'