繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM