2013-06-30 3 views
-1

Я хочу в Python для визита ссылки, которая обрабатывается JavaScript, как показано ниже:Открыть конкретную ссылку «#», которая обрабатывается Javascript?

<a href="#" class="example"> Hello World </a> 

Я хочу найти по ссылке из HTML строки на основе класса атрибута или идентификатора атрибут <a> Элемент.

Возможно ли это сделать в Python?

ответ

1

Вы не можете, потому что это ссылка для самостоятельной ссылки. У вас есть уже открыл документ.

A # в URL-адресе означает местоположение в документе. Когда URL начинает с #, он находится в пределах текущий документ; браузер будет прокручиваться до любого Идентификатора, названного в честь #. В следующем примере, нажав на <a href="#footer"> ссылку инструктирует браузер для прокрутки документа, чтобы поместить <div id="footer"> элемент в верхней части окна браузера:

<a href="#footer">to the end of the document</a> 

<!-- long document follows --> 

<div id="footer">Something at the bottom of the document</div> 

Когда URL состоит только из #, то URL это не-op. Это заполнитель, поскольку JavaScript для перехвата ссылки обычно используется. Вы можете полностью игнорировать его при обработке этого документа с помощью Python. Ваш Python HTML-парсер не является браузером, JavaScript не выполняется для обработки mouseclick в этом элементе ссылки. Нет даже музлик.

Если вы в попытку обработать JavaScript-приводимую страницу, вы можете либо использовать отладчик JavaScript (поставляется с большинством браузеров), чтобы выяснить, что она делает, или запустить обезглавленный браузер, управляемый Python. Вы можете использовать Ghost.py сделать последнее:

from ghost import Ghost 
ghost = Ghost() 
page, extra_resources = ghost.open("http://jeanphi.fr") 
assert page.http_status==200 and 'jeanphix' in ghost.content 

Это запускает обезглавленное Webkit браузер.

+0

Нет ли библиотеки для этого? Механизировать или любую другую библиотеку? – ant0nisk

+0

См. [Имитировать просмотр пользователей по коду] (http://stackoverflow.com/a/15177624) –

+0

Спасибо, я попробую и сообщите, работает ли это для меня! – ant0nisk

Смежные вопросы