Python urllib wget сохранить полную страницу - PullRequest
0 голосов
/ 04 февраля 2019

Я хотел бы загрузить веб-страницу , завершенную с urllib или wget или аналогичным пакетом на python.

Полученный HTML-файл отличается от для веб-страницы, завершите , чем с веб-страницей, только HTML , что, по-видимому, wget.download или urllib.request.urlopen делает.

enter image description here

Пример URL, в котором эти два html файла отличаются: https://smash.gg/tournament/genesis-6/events/smash-for-switch-singles/brackets/500500/865126.

Ответы [ 2 ]

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

Страница, на которую вы ссылаетесь, очень сильно зависит от JavaScript и, в частности, от запросов AJAX.wget не анализирует Javascript вообще, поэтому, если в исходном коде JS есть какие-либо ссылки, которые необходимы, Wget просто пропустит их.Это то, что вызывает различия, которые вы заметили.

Скорее всего, вы не сможете полностью сохранить эту страницу с помощью чего-то вроде wget или urllib.Поскольку оба они работают в основном только с источниками HTML.Wget также может обрабатывать CSS, но это все.Для страницы со сценарием нужно что-то более сложное.Если вы действительно хотите сохранить его программно, вам нужно использовать Selenium.

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

Вы можете смоделировать нажатие клавиш CTRL + s, а затем s для сохранения (найдено здесь )

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('https://smash.gg/tournament/genesis-6/events/smash-for-switch-singles/brackets/500500/865126')

save_me = ActionChains(driver).key_down(Keys.CONTROL).key_down('s').key_up(Keys.CONTROL).key_up('s')
save_me.perform()
...