Python Script для входа на сайт не вводит информацию для входа - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь создать сценарий, который будет входить на веб-сайт, а затем очищать данные с определенной страницы на веб-сайте, доступ к которой можно получить только после входа в систему. Данные не передаются в оболочке IDLE независимо от того, если я уже вошел в систему или нет, это говорит мне о том, что на веб-сайте должен быть какой-то ключ подтверждения или идентификатор, который я не вижу в коде веб-сайта для входа. Я несколько раз просматривал код для входа на сайт, но не могу найти ничего, чего мне не хватает. Я не уверен, что мне разрешено размещать здесь данные HTML для других сайтов, но вот сценарий, который я пишу.

Пожалуйста, извините закомментированный раздел, помеченный как скрипты Excel:

Я уже пытался использовать lxml и beautifulsoup для целей навигации, но, похоже, это не дает никакого эффекта. Я пробовал подобный скрипт на других, более простых сайтах, и он, похоже, работал там по большей части.

import requests
from lxml import html

USERNAME = <username>
PASSWORD = <password>

LOGIN_URL = "https://www.tm3.com/homepage/login.jsf"
URL = "https://www.tm3.com/mmdrewrite/mmd/14902.faces"

def main():
session_requests = requests.session()

# Get login csrf token
result = session_requests.get(LOGIN_URL)
tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath('//input[@name= 
"javax.faces.ViewState"]/@value')))[0]
# Create payload
payload = {
    "username": USERNAME, 
    "password": PASSWORD, 
    "javax.faces.ViewState": authenticity_token
}

# Perform login
result = session_requests.post(LOGIN_URL, data = payload, headers = 
dict(referer = LOGIN_URL))

# Scrape url
result = session_requests.get(URL, headers = dict(referer = URL))
tree = html.fromstring(result.content)
print('',result.content)

"""
#excel scripts
def excel():
import xlwt
book = xlwt.Workbook(encoding= "utf-8")
sheet1= book.add_sheet("Sheet1")


#for loop for putting data into different cells
num=0
row = sheet1.row(num)

row.write(num,test)
print("EVEN:" , test)
print("ODD:" , ODD)
book.save("Testing.xls")

"""
if __name__ == '__main__':
main()

Я хочу, чтобы веб-страница была напечатана целиком, но вместо этого скрипт просто распечатывает страницу входа в систему

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