Как войти на сайт и очистить данные с помощью Python - PullRequest
0 голосов
/ 05 мая 2018

Я хочу создать программу, в которой я могу проверять свои оценки, используя python, и у меня есть код для очистки данных в Интернете, но я не знаю, как войти на этот конкретный веб-сайт. Веб-сайт https://hac.chicousd.org/LoginParent.aspx?page=Default.aspx, и если вам это нужно, я могу указать свое имя пользователя и пароль. Я пытался использовать запросы и urllib, и ни один не работает. Я ценю любую помощь, оказанную.

Ответы [ 3 ]

0 голосов
/ 05 мая 2018

Как отмечено в комментариях, существует возможность использовать 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

Обратите внимание, что все ключи словаря payload должны быть действительными <input> "name" значениями из HTML сайта.

0 голосов
/ 08 мая 2018

Как уже говорили другие, вы можете использовать selenium. Вы также должны использовать time, чтобы остановить программу за несколько секунд до ввода пароля. Сначала установите селен в командной строке pip install selenuim и веб-драйвере (вот код для 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()
0 голосов
/ 05 мая 2018

Попробуйте использовать механический суп . Он позволяет вам перемещаться по веб-сайту так же, как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...