Как получить атрибуты localStorage с веб-страницы в python? - PullRequest
0 голосов
/ 27 февраля 2020

Я хотел бы получить определенный ключ, который хранится в объекте LocalStorage на вкладке Приложения в инструментах разработчика.

Я использую запросы, чтобы попасть на веб-страницу, но я пытаюсь использовать python Связи с селеном для извлечения элементов. Но execute_script для элемента выбирается как none

from selenium.webdriver import Firefox


browser = Firefox(options=opts)
browser.get('https://stackoverflow.com')
print (browser.execute_script('return localStorage.getItem("se:fkey");'))

1 Ответ

0 голосов
/ 07 марта 2020

Я верю, что ваш код в принципе работает, так как я получаю следующие результаты:

Python 3.6.3 |Anaconda, Inc.| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from selenium.webdriver import Firefox
>>> browser = Firefox()
>>> browser.get('https://stackoverflow.com')
>>> print(browser.execute_script('return localStorage.setItem("bla", "blub");'))
None
>>> print(browser.execute_script('return localStorage.getItem("bla");'))
blub

Для примера, который вы использовали, я получаю:

>>> from selenium.webdriver import Firefox
>>> browser = Firefox()
>>> browser.get('https://stackoverflow.com')
>>> print(browser.execute_script('return localStorage.getItem("se:fkey");'))
a65d3ff60687075dfa4fa896a4a1013469e1cabe47542b72924674be03c0c2ee,1583582386

Однако имейте в виду что запускаемый браузер использует чистый профиль браузера, в котором (среди прочего, например, файлы cookie, закладки, история) локальное хранилище является чистым. Поэтому, даже если вы установите какое-либо значение локального хранилища в своем «обычном» профиле firefox, браузер firefox, запущенный selenium, не будет иметь доступа к «вашему» локальному хранилищу.

Возможно, его можно пропустить заданный c профиль браузера для параметра options при инициализации браузера (см. https://selenium-python.readthedocs.io/api.html#module -selenium.webdriver. firefox .options ). Однако имейте в виду, что это делает ваш код мало пригодным для повторного использования на другом компьютере ...

...