私はフラスコでWebスクレイピングAPIを記述しようとして呼び出すことはできません、これはコードです:「セッション」オブジェクトをフラスコ
app = Flask(__name__)
@app.before_request
def login():
session = requests.Session()
url = "someurl"
params = {'uid': 'username',
'pwd': 'password'}
session.post(url, data=params)
return session
@app.route('/scrape')
def lezione(session):
req = session.get("urlscraped")
soup = BeautifulSoup(req.content, "lxml")
table = soup.find_all(
'table', attrs={'class': 'griglia_tab', 'id': 'data_table'})[2]
if not table:
print("List is empty")
print(re.sub(r'\n\s*\n', '\n', table.text.strip()))
if __name__ == "__main__":
app.run(debug=True, host='localhost', port=5000)
基本的にこのコードのログインサイトに、いくつかのデータを掻き取ります。私がしたいのは、何かを削る前にlogin()
関数を実行することですが、コードを実行すると、エラーが発生します:TypeError: 'Session' object is not callable
コードの何が間違っていますか?私は通常の関数にlogin()
を回すだけlezione()
からそれを呼び出すことをお勧めし
(ログイン '場合は)'そして 'lezione()'を実行することはありません何かを返します。 – gommb
しかし、私はフラスコなしでコードをテストしたときにそれは働いた – andrea56
フラスコなしで動作する場合でも、同じセットアップがフラスコで動作することを意味するわけではありません。 – gommb