2015-03-11 1 views
0

Я использую селен & scrapy для проекта.Как сканировать «скрытые» JS для локально сохраненных html

Мне нужен локальный html-файл, поэтому я локально загружаю html, используя «driver.page_source» с селеном и сохраняя его как локальный .html-файл.

Когда я открываю его в любом браузере (Chrome, Firefox, Safari), я вижу, что отображается не вся страница. Однако, если я открою тот же файл в блокноте, textedit или Pycharm, он отобразит всю информацию. Кроме того, если посмотреть исходный код (в Chrome или любом другом браузере, появится информация).

Я пытался следовать советам на многих кормах: Для .: например, реализовав: HTML = driver.execute_script ("вернуть document.getElementsByTagName ('HTML') [0] .innerHTML"). Но это не работает (например: How to get html with javascript rendered sourcecode by using selenium)

ВАЖНО: При первом открытии локального файла html я могу кратко просмотреть всю страницу, прежде чем она исчезнет.

После многих дней сбивания с толку я по-настоящему ценю любую помощь. Заранее спасибо!!

+0

Какой код у вас есть на данный момент? Поделись, пожалуйста. – alecxe

+0

Спасибо, что нашли время, чтобы рассмотреть вопрос alecxe! :-D Я нашел решение проблемы (объяснено ниже) –

ответ

0

Я, наконец, нашел решение проблемы.

Что я сделал, было отключить JS в Firefox.driver (в webdriver), и все работает отлично. Это было на мой взгляд в течение последних нескольких недель. Ниже приведен код, который можно сделать в Python.

Я надеюсь, что это может помочь кому-то другому. Мне потребовалось много времени, чтобы найти код Python для этого - там было много запросов Ruby и Java. К сожалению, я больше не могу найти источник своего ответа.

Наслаждайтесь! :-D

fp = webdriver.FirefoxProfile() 
fp.set_preference("javascript.enabled", False) 
self.driver = webdriver.Firefox(firefox_profile=fp) 
Смежные вопросы