我正在尝试使用请求模块抓取我的学校网站。为了输入我的帐户,我必须提交我的用户名和密码。我尝试使用selenium进行此操作,但是当我登录后尝试获取html内容时,它为我提供了登录页面的html。
这是我必须在其中放置数据的框的html代码:
<input class="input_account idesk-force-focus placeholder"
type="text" id="login" placeholder="Codice personale/ Email/ Badge"
name="login" value="" size="56" tabindex="2"
style="border-radius: 5px; border: 1px solid #aaaaaa;
height: 30px; font-size: 16px; padding-left: 4px;
width: 490px; margin-left: 60px; ">
这是硒代码</ p>
def SelLog():
driver = webdriver.Chrome()
driver.get("https://web.spaggiari.eu/home/app/default/menu_webinfoschool_studenti.php")
#keys
username = driver.find_element_by_xpath("//*[@id='login']")
password = driver.find_element_by_xpath("//*[@id='password']")
confirm = driver.find_element_by_xpath("//*[@id='login-container']/div[2]/div/div/input")
#fill element
username.send_keys(USERNAME)
password.send_keys(PASSWORD)
confirm.click()
time.sleep(1)
homeworks = driver.find_element_by_xpath('//*[@id="data_table"]/tbody/tr[14]/td[4]/a')
homeworks.click()
contentSel = "https://web.spaggiari.eu/fml/app/default/agenda_studenti.php"
contentReq = requests.get("https://web.spaggiari.eu/fml/app/default/agenda_studenti.php")
print(contentReq)
response = urllib.request.urlopen(contentSel)
html = response.read()
所以我尝试了其他一些模块,但是结果相同。 我在互联网上搜索了一些答案,发现请求模块非常适合此操作。
所以我尝试了在stackoverflow上找到的这段代码:
payload = {"login":USERNAME, "password": PASSWORD}
def req():
username = USERNAME
password = PASSWORD
url = URL
params = {"action":"process"}
session = requests.session()
r = session.post(URL, data = payload, params = params)
account = session.get("https://web.spaggiari.eu/home/app/default/menu_webinfoschool_studenti.php?custcode=")
print(account.content)
但仍然没有结果。
有人可以帮我吗?
ps对不起,英语