如何使用python登录网站并获取数据

如何使用python登录网站并获取数据,python,web-scraping,Python,Web Scraping,我想创建一个程序,在那里我可以使用python检查我的成绩,我有代码可以在网上收集数据,但我不知道如何登录到这个特定的网站。该网站是,如果你需要它,我可以给我的用户名和密码。我尝试过使用requests和urllib,但都不起作用。非常感谢您的帮助。尝试使用。它允许你像平常一样浏览网站。正如评论中指出的,一种可能是使用selenium,一种浏览器操作工具。但是,您也可以使用requests.Sessions发送带有电子邮件有效负载的POST请求,然后使用GET请求您希望查看的任何门户页面: im

我想创建一个程序,在那里我可以使用python检查我的成绩,我有代码可以在网上收集数据,但我不知道如何登录到这个特定的网站。该网站是,如果你需要它,我可以给我的用户名和密码。我尝试过使用requests和urllib,但都不起作用。非常感谢您的帮助。

尝试使用。它允许你像平常一样浏览网站。

正如评论中指出的,一种可能是使用
selenium
,一种浏览器操作工具。但是,您也可以使用
requests.Sessions
发送带有电子邮件有效负载的
POST
请求,然后使用
GET
请求您希望查看的任何门户页面:

import requests
r = requests.Session()
payload = {'portalAccountUsername':'yoursutdentemail@school.com'}
r.post('https://hac.chicousd.org/LoginParent.aspx?page=Default.aspx', data = payload)
然后,使用
r
实例,您可以将
GET
请求发送到门户上仅对经过身份验证的用户可见的页面:

data = r.get('https://hac.chicousd.org/some_student_only_page').text

请注意,
有效负载
字典的键必须都是站点HTML中的有效值。

正如其他人所说,您可以使用
selenium
。您还应该使用
time
在输入密码前几秒钟停止程序。首先在命令提示符
pip install selenium
和webdriver中安装selenium(以下是chrome
pip install chromedriver\u安装程序的代码)。然后您可以在代码中使用它们

import selenium
from selenium import webdriver
import time
from time import sleep
然后,您应该使用web驱动程序打开网页

browser = webdriver.Chrome('C:\\Users...\\chromedriver.exe')
browser.get('The website address')
下一步是找到网页上的元素名称,以写入用户名、密码和按钮路径

username = browser.find_element_by_id('portalAccountUsername')
username.send_keys('your email')

next = browser.find_element_by_xpath('//*[@id="next"]')
next.click()

password = browser.find_element_by_id('portalAccountPassword')
time.sleep(2)
password.send_keys('your password')

sing_in = browser.find_element_by_xpath('//*[@id="LoginButton"]')
sing_in.click()

您可以使用Selenium实现这一点:我如何使用python实现这一点?好的,
pip install Selenium
将为您提供Selenium并继续阅读文档,它提供了python代码示例来帮助您入门。您将主要使用webdriver:@OnkarSandhu在首次使用
r.post
登录后,您是否尝试将
GET
请求发送到其他页面?另外,确保字典的键与HTML中的name属性相匹配。谢谢,我使用selenium实现了它。它工作得很好,谢谢!