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