Получение конечного пункта назначения перенаправления JavaScript на веб-сайте - PullRequest
2 голосов
/ 08 ноября 2011

Я разбираю сайт с питоном.Они используют много перенаправлений, и они делают это, вызывая функции javascript.

Так что, когда я просто использую urllib для анализа сайта, это не помогает мне, потому что я не могу найти целевой URL ввернул html-код.

Есть ли способ получить доступ к DOM и вызвать правильную функцию javascript из моего кода на python?

Все, что мне нужно, это URL, куда меня перенаправляет.*

Ответы [ 2 ]

9 голосов
/ 09 ноября 2011

Я заглянул в Селен.И если вы не запускаете чистый скрипт (то есть у вас нет дисплея и вы не можете запустить «обычный» браузер), решение на самом деле довольно простое:

from selenium import webdriver

driver = webdriver.Firefox()
link = "http://yourlink.com"
driver.get(link)

#this waits for the new page to load
while(link == driver.current_url):
  time.sleep(1)

redirected_url = driver.current_url

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

0 голосов
/ 08 ноября 2011

Это не звучит забавно для меня, но каждая функция javascript - это тоже объект, так что вы можете просто прочитать функцию, а не вызывать ее, и, возможно, URL-адрес в ней. В противном случае эта функция может вызвать другую функцию, в которую вы затем должны будете вернуться ... Опять же, это не звучит весело, но может быть выполнимо.

...