我正在为我大学的学生创建一个网络应用程序。他们将输入他们的电子邮件和他们的大学证书密码,我的申请将采取他们的密码,为他们登录大学网站,并刮取一些数据,将以更好的方式呈现。你知道吗
以下是我的问题:
下面是我目前如何做的文件。我知道它非常不安全。你知道吗
所以在用户登录到我的应用程序之后路线.py文件显示了我如何接受scraper工具的POST请求,并将其写入一个单独的文件中,该文件包含一个全局变量作为学生用户名和密码。你知道吗
from flask import Flask, render_template
from flask import request
from flask import render_template, redirect, url_for, request, jsonify
import settings
import json
app = Flask(__name__)
@app.route('/')
def home():
return render_template('landing.html')
@app.route('/webScraperTool', methods =['POST'])
def webScraperTool():
settings.email = request.form['email'];
settings.password = request.form['password'];
import UniversitySiteScraperTool
return jsonify(settings.jsonObjects)
if __name__ == '__main__':
app.run(debug=True)
设置文件包含凭据的全局变量。你知道吗
global email
email = ""
global password
password = ""
最后,我的universitystesscrapertool将使用全局变量并使用chrome驱动程序来自动登录。你知道吗
import pandas as pd
import os
import re
import numpy as np
import datetime
import sys
import settings
import json
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
################# DRIVER CODE PORTION #################
# Executable path ->
driver = webdriver.Chrome(executable_path=settings.dirpath + '/chromedriver')
#Url to DWORKS
url = "University Website URL"
driver.get(url)
##username and password##
usernameStr = settings.email
passwordStr = settings.password
username = driver.find_element_by_id('username')
username.send_keys(usernameStr)
password = driver.find_element_by_id('password')
password.send_keys(passwordStr)
nextButton = driver.find_element_by_css_selector('#welcome > div > div.row.btn-row > input.btn-submit')
#After I fill in their credentials, click the submit button
nextButton.click()
由于您只是在抓取一个以明文形式获取用户名和密码的站点,因此您实际上没有一种好的方法来安全地存储用户的密码,同时仍然使其可恢复,以便您可以抓取该站点。你知道吗
话虽如此,您并不是真的像您所说的那样“写入一个单独的文件”,而是用户名和密码只是保存在内存中,即使这些变量包含在不同的文件中。你知道吗
出于这个原因,我认为让scraper工具成为一个在实例化时接收用户名和密码的类会更简单。当它完成并且对象被销毁时,用户名和密码也随之被销毁。你知道吗
基本上,结构看起来很像您所拥有的,但是包装在一个类中:
然后您可以在主应用程序中使用以下代码:
相关问题 更多 >
编程相关推荐