2016-01-05 4 views
0

I'm parsing http://www.treccani.it/lingua_italiana/sinonimi_regionali/ с помощью python3 и beautifulsoup. Я разобран первая страница и мне нужно, чтобы перейти на вторую страницу, на третий и т.д. Переход на другую страницу производится кнопка (изображение):Как я могу получить ссылку от <a href="#" onClick=?

<div class="next"> 
    <a href="#" onClick="doSearch(1, 4, 37); return false;" title="Pagina successiva"> 
     <img src="/export/system/modules/it.banzai.treccani.portale3/resources/images/arrow-right.png" /> 
    </a> 
</div> 

Скажите, пожалуйста, как я могу получить ссылка на следующую страницу? Или как я могу перемещаться между страницами с помощью python?

+0

BeautifulSoup только анализирует страницу, которую видит, если нет ссылки там, которую она не найдет. Один из них как @Wayne Werner сказал, что селен - хороший подход, чтобы делать то, что вам нужно. – bobthemac

ответ

1

Думаю, вам понадобится механизм Javascript, а не красивый суп.

Один хороший подход - использование автоматизации браузера через Selenium. Если вам не хочется гадать, потому что вам нужно знать, что делает функция doSearch, и если они меняют Javascript, тогда ваш код больше не будет делать то, что вы ожидаете.

+0

Уэйн, спасибо. – GiveItAwayNow

1

Проблема с использованием BeautifulSoup заключается в том, что он возвращает вам статическую страницу, если ссылка отсутствует в html, которую вы не можете получить с помощью BeautifulSoup, поскольку это просто парсер и не запускает страницу.

Как упоминалось в других ответах, хорошим подходом к использованию является selenium, вы также можете попытаться найти JavaScript, который выполняет репликацию его на вашем конце python, но это кажется немного грязным. Посмотрев на функцию doSearch, селен кажется лучшим вашим выстрелом.

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