Я предполагаю, что вам нужны привилегии для доступа к предоставленному URL, потому что он был неудачным, когда я пытался.В любом случае ниже будет рабочий пример.
Во-первых, вам нужно получить URL-адрес из текста HTML, а не беспорядочный шаблон регулярного выражения, и если все ваши возвращенные HTML одинаковы:
import re
from bs4 import BeautifulSoup
t = '''<script type="text/javascript">document.location = 'https://urproject.com/admin/php/user_id_check.php?EncData=abcdefg1234&EncKey=hijk9876';</script>'''
soup = BeautifulSoup(t,'html.parser')
url = soup.text.split("'")[1]
url
>>'https://urproject.com/admin/php/user_id_check.php?EncData=abcdefg1234&EncKey=hijk9876'
Для Python> 3.4 вы можете использовать метод parse
из urllib
, что делает его очень простым, а если нет, вам действительно стоит подумать об обновлении.
from urllib import parse
parse_url = parse.parse_qs(parse.urlparse(url).query)
EncData = parse_url['EncData'][0]
EncKey = parse_url['EncKey'][0]
encdatanenckey = {'EncData':EncData,
'EncKey':EncKey}
print(encdatanenckey)
>>{'EncData': 'abcdefg1234', 'EncKey': 'hijk9876'}
Если вы не используете Python> 3.4, вам придется вручную разбить строки, чтобы получить параметры, которые дали бы те же результаты:
EncData = [i.split("=")[-1] for i in url.split("?", 1)[-1].split("&") if i.startswith('EncData' + "=")][0]
EncKey = [i.split("=")[-1] for i in url.split("?", 1)[-1].split("&") if i.startswith('EncKey' + "=")][0]
encdatanenckey = {'EncData':EncData,
'EncKey':EncKey}