Не удается войти на сайт и очистить данные - PullRequest
0 голосов
/ 13 мая 2019

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

import requests
from bs4 import BeautifulSoup
s = requests.session()
url = "http://indiatechnoborate.tymra.com"

with requests.Session() as s:
    first = s.get(url)
    start_soup = BeautifulSoup(first.content, 'lxml')
    print(start_soup)
    retVal=start_soup.find("input",{"name":"return"}).get('value')
    print(retVal)
    formdata=start_soup.find("form",{"id":"form-login"})
    dynval=formdata.find_all('input',{"type":"hidden"})[1].get('name')
    print(dynval)
    dictdata={"username":"username", "password":"password","return":retVal,dynval:"1"
    }
    print(dictdata) 
    pr = {"task":"user.login"}
    print(pr)
    sec = s.post("http://indiatechnoborate.tymra.com/component/users/",data=dictdata,params=pr)
    print("------------------------------------------")
print(sec.status_code,sec.url)
print(sec.text)

Я хочу войти на сайт и получить данные после входа в систему

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Попробуйте использовать методы аутентификации вместо передачи полезной нагрузки

import requests
from requests.auth import HTTPBasicAuth
USERNAME = "<USERNAME>"
PASSWORD = "<PASSWORD>"
BASIC_AUTH = HTTPBasicAuth(USERNAME, PASSWORD)
LOGIN_URL = "http://indiatechnoborate.tymra.com"
response = requests.get(LOGIN_URL,headers={},auth=BASIC_AUTH)
0 голосов
/ 13 мая 2019

попробуйте заменить эту строку:

dictdata={"username":"username", "password":"password","return":retVal,dynval:"1"}

с этим:

dictdata={"username":"username", "password":"password","return":retVal + "==",dynval:"1"}

надеюсь, это поможет

...