Разбор динамически сгенерированных URL со страницы aspx - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь проанализировать страницу aspx, содержащую таблицу, в каждой строке есть элемент, который открывает файл PDF на новой вкладке.

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

Моя конечная цель - сохранить все эти PDF-файлы, я думал, что лучшим решением будет сохранение URL-адресов и использование запросов для сохранения содержимого каждого URL-адреса.Но я не смог найти способ получить все URL без фактического нажатия на каждый элемент.

HTML-код скрипта после нажатия на элемент:

 <script language="JavaScript">
    var docUrl=escape('/NGCS.Web.Secured/Viewer/NGCSViewerPage.aspx?DocumentNumber=4105ea67709148d7984ce9a2efc48157');
    window.open(unescape(docUrl)); </script>

Требуемое значение из этого примераявляется ли строка, указанная в 'docUrl', то есть: '/ NGCS.Web.Secured / Viewer / NGCSViewerPage.aspx? DocumentNumber = 4105ea67709148d7984ce9a2efc48157', или 'DocumentNumber' из этой строки, то есть: '4105ea7678674)1010 *

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

Не удалось найти что-то похожее на мой вопрос.

1 Ответ

0 голосов
/ 20 февраля 2019

Вы не предоставили много информации о том, КАК удерживает этот объект, поэтому я предполагаю, что это строка.Вы можете использовать регулярное выражение для получения номера документа, например:

import re
s = ''' <script language="JavaScript">
    var docUrl=escape('/NGCS.Web.Secured/Viewer/NGCSViewerPage.aspx?DocumentNumber=4105ea67709148d7984ce9a2efc48157');
    window.open(unescape(docUrl)); </script>'''
print(re.search('DocumentNumber=([\w]+)',s).groups())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...