Войти на сайт с помощью модуля Python and Requests?

Я пишу веб-скребок AliExpress, используя Python и модуль Requests, вместе с BeautifulSoup, и у меня все получилось, но я столкнулся с проблемой - меня случайно перенаправили на страницу входа. Мое решение для этого состоит в том, чтобы просто войти в начале моего сеанса до очистки, но я не знаю, как войти.

Страница входа ( https://login.aliexpress.com/) требует только имя пользователя и пароль, но когда я пытаюсь ввести их со своим кодом и проверить, авторизован ли я, перейдя по https://home.aliexpress.com/index.htm и, глядя на HTML, не удается, так как перенаправляет меня обратно на страницу входа.

Мой код после попытки нескольких решений безрезультатно:

import requests

LOGIN_URL = "https://login.aliexpress.com/"
LOGIN_INFO = {
    "loginId": "myemail@email.com",
    "password": "mypassword"
}


with requests.Session() as sess:
    #go to login page
    sess.get(LOGIN_URL)

    #attempt to log in with my login info
    sess.post(LOGIN_URL, data=LOGIN_INFO)

    #go to 'My AliExpress' page to verify successful login
    success = sess.get("https://home.aliexpress.com/index.htm")

    #manually check html to see if I was sent to the login page again
    print(success.text)

Это в значительной степени то, что осталось после многих моих неудачных попыток. Вот некоторые из вещей, которые я пробовал:

  1. Глядя на файл cookie после "sess.get(LOGIN_URL)", он возвращает это, но я не знаю, что с ним делать (в формате ключ: значение):

    • ali_apache_tracktmp:
    • ali_apache_track:
    • xman_f: t52Eyo + p3qf6E6fdmL5yJ81g2icRn + 2PYjjrWYHlqlDyXAixo92Z5KHMZV8SCV7vP4ZjxEmuTQesVWkqxUi3SpFU1qbRyNRV = 2RVD0RVD0RVD0RVD0R1R0D0R1R0D0R1D6R4
    • JSESSIONID: 30678741D7473C80BEB85825718FB1C6
    • acs_usuc_t: acs_rt = 343aef98b0ca4ae79497e31b11c82c29 & x_csrf = 1b5g78e7fz2rt
    • xman_us_f: x_l = 0
    • ali_apache_id: 23.76.146.14.1510893827939.187695.4
    • xman_t: PSIYMbKN2UyuejZBfmP9o5hdmQGoSB0UL0785LnRBxW0bdbdMmtW2A47hHbgTgD7TmFp7QVsOW4kXTsXMncy + iKisKfqagqbwyPxOVF =
  2. Попытался найти токен csrf и нашел только текст после '_csrf=' в 5-м пункте выше. Пробовал использовать его, и это не сработало.

  3. Посмотрел html-форму, отправляемую при входе в систему, но я не знаю html и могу только распознать, что в ней гораздо больше полей, чем те, которые я видел, что другие люди используют для других веб-сайтов (изображение данных формы из Chrome здесь).

  4. Изменив "myPassword" в моем коде на текст в поле password2 на изображении выше и изменив ключ "password" на "password2".

  5. Погуглил несколько часов, но не нашел ничего, что сработало бы.

На данный момент, я в своем уме, поэтому любая помощь в том, как поступить, будет очень признательна. Я не лучший программист (все еще учусь), не знаю html за пределами того, что я узнал из нескольких уроков о чистке, и надеялся сам разобраться, но несколько часов спустя я все еще не решил это и понял, что действительно могу воспользоваться помощью.

Я использую Python 3.5. Если потребуется дополнительная информация, дайте мне знать. Мозг почти полностью превращается в кашу после того, как застрял и проснулся так долго.

0 ответов

У меня есть подозрение, что это не сработает так, как вы хотите. Даже после того, как каким-то образом выполнено приглашение на вход, на следующей странице представлена ​​"проверка ползунка", с которой, насколько мне известно, запросы ничего не могут сделать. (Если есть способ, дайте мне знать).

Вместо этого я пытался использовать файлы cookie:

session = requests.Session()
cj = requests.cookies.RequestsCookieJar()
cj.set('KEY', 'VALUE')
session.cookies = cj
response = session.get(url, timeout=5, headers=headers, proxies=proxies)

Раньше парсер какое-то время работал с заголовками и прокси, но в последнее время всегда запрашивает логин. Я пробовал все ключи и значения в файлах cookie, но безрезультатно.

Идея заключалась бы в том, чтобы использовать селен для входа в систему и захвата файлов cookie, а затем передать его сеансу запросов.

AntoG есть решение для этого: /questions/43755130/python-zaprosyi-selenium-prohozhdenie-kuki-pri-vhode/43755136#43755136

Другие вопросы по тегам