Проблема при извлечении указанного c текста (токен запроса для программы auto trader) - PullRequest
0 голосов
/ 26 марта 2020

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

https://zerodha.com/?request_token=**JZhT0vAv6L0ox9ZQdZCWhTWNUGLiLwXr**&action=login&status=success

Подсвеченные коды alphanumeri c являются маркером запроса. Я использовал приведенный ниже код для его извлечения

My_url = 'https://zerodha.com/request_token=JZhT0vAv6L0ox9ZQdZCWhTWNUGLiLwXr&action=login&status=success'
print(My_url)
print(type(My_url))
A_strip= My_url.strip('https://zerodha.com/?request_token=')
print(A_strip)
request_token = A_strip.strip('&action=login&status=success')
print(request_token)
print(len(request_token))

Ожидаемый вывод - текст из 32 символов: JZhT0vAv6L0ox9ZQdZCWhTWNUGLiLwXr

, но код каждый раз работает по-разному. Например, обратитесь к приведенному ниже коду

My_url = 'https://zerodha.com/?request_token=HF4Bp4umtdFeC5n50auCA3DBim4N1Sto&action=login&status=success'
A_strip= My_url.strip('https://zerodha.com/?request_token=')
request_token = A_strip.strip('&action=login&status=success')
print(request_token)
print(len(request_token))

, результат которого, как ожидается, будет HF4Bp4umtdFeC5n50auCA3DBim4N1Sto, но я получаю HF4Bp4umtdFeC5n50auCA3DBim4N1S, текстовый вывод из 30 символов.

Кроме токена, остальная часть url такая же. я запутался, как это порождает значения diff каждый раз. пожалуйста, помоги мне из этого

1 Ответ

0 голосов
/ 26 марта 2020

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

Поскольку t и o находятся в указанной вами последовательности, они удаляются из хвоста вашей строки, поскольку они Считаете висячих персонажей. Удаление останавливается на S, потому что это письмо отсутствует в вашем комплекте.

Если ваш токен начинался с чего-то другого, чем H, например, a или c et c. он также будет удален спереди, так как он будет считаться ведущим символом.

Для решения проблемы вы можете использовать регулярные выражения или просто нарезать строку, так как вы знаете длину своего начала и конца.

My_url = 'https://zerodha.com/?request_token=HF4Bp4umtdFeC5n50auCA3DBim4N1Sto&action=login&status=success'
prefix = 'https://zerodha.com/?request_token='
suffix = '&action=login&status=success'

token = My_url[len(prefix):-len(suffix)]
print(token, len(token))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...