[英]How to login to a website and scrape data using python
我想创建一个程序,在其中可以使用python检查成绩,并且拥有用于对数据进行抓取的代码,但是我不知道如何登录该特定网站。 该网站为https://hac.chicousd.org/LoginParent.aspx?page=Default.aspx ,如果需要,我可以提供用户名和密码。 我试过使用请求和urllib,但都没有用。 我感谢您提供的任何帮助。
尝试使用机械汤 。 它使您可以像平常一样浏览网站。
正如评论中指出的那样,一种可能性是使用浏览器操纵工具selenium
。 但是,您还可以使用requests.Sessions
发送带有电子邮件有效负载的POST
请求,然后发送GET
请求,以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
请注意, payload
字典的键必须全部是站点HTML中的有效<input>
"name"
值。
正如其他人所说,您可以使用selenium
。 你也应该用time
来停止程序几秒钟前,把你的密码。 首先在命令提示符下安装selenium pip install selenuim
和一个webdriver(这是chrome pip install chromedriver_installer
的代码)。 然后,您可以在代码中使用它们。
import selenium
from selenium import webdriver
import time
from time import sleep
然后,您应该使用网络驱动程序打开网页
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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.