Есть ли способ получить размер отображаемой страницы через HTTP-запрос python?
Я не уверен, что моя формулировка верна, но то, что я подразумеваю под "отображаемой страницей", - это размер, который браузер должен будет загружать (включая изображения, css,...). Не длина html-кода.
В качестве второго приоритета было бы также полезно узнать количество вызовов, и если страница была скопирована, так как это может повлиять на результат калибровки рассматриваемой страницы.
Большое спасибо за вашу помощь !
Я написал сценарий Python, который делает это с Selenium и безголовым Chrome Remote WebDriver:
https://github.com/jorgeorpinel/site-page-size-scrapper (Не стесняйтесь клонировать или вилку!)
Хитрость заключается в том, чтобы включить ведение журнала производительности, выборку и анализ журналов сети для расчета полного размера веб-страницы. Что-то вроде этого:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('headless')
capbs = webdriver.DesiredCapabilities.CHROME.copy()
capbs.update({'loggingPrefs': {'performance': 'ALL'}, 'detach': False})
driver = webdriver.Remote("http://127.0.0.1:9515", capbs, options=options)
# ^ Requires chromedriver (server) running locally (on default port).
driver.get('https://www.baidu.com/')
logs = driver.execute('getLog', {'type': 'performance'})['value']
# Now analyze the Network logs as you prefer.
См. Https://chromedevtools.github.io/devtools-protocol/tot/Network