Использование JS-навигатора из PyV8

Я пытаюсь использовать JS Navigator из скрипта Python, запуская pyv8.

Ошибка, с которой я сталкиваюсь:

ReferenceError: navigator is not defined

Я попробовал тот же код в JSFiddle, и он отлично работает, я могу только предположить, что запуск JS из браузера позволяет получить доступ к большему количеству функций, чем позволяет движок V8.

К сожалению, мои познания в JS (и почти во всем, что связано с Интернетом!) очень ограничены, я уверен, что это тривиальный вопрос для любого, кто имеет опыт работы в Интернете, не мог бы кто-нибудь объяснить, почему это происходит, и как я могу избежать этого. ?

ИЗМЕНИТЬ

Попытка получить выходные данные из этого JSFiddle .

И пока мой код Python:

import PyV8

ctxt = PyV8.JSContext()
ctxt.enter()
ctxt.eval("navigator.geolocation.getCurrentPosition();")

Я уверен, что с этим тоже есть проблемы (т.е. с фактическим отображением значений), однако сейчас меня больше беспокоит, почему навигатор не определен.


person Aphire    schedule 02.06.2015    source источник
comment
Приятно видеть, какой код вы пытаетесь запустить...   -  person Alex    schedule 02.06.2015
comment
Конечно, отредактирую. сек   -  person Aphire    schedule 02.06.2015


Ответы (1)


С места в карьер я бы сказал, что, поскольку вы не находитесь в среде браузера, глобальное свойство navigator недоступно.

Вам нужно будет найти другой способ получить информацию о геолокации... возможно, используя библиотеку Python?

person Alex    schedule 02.06.2015
comment
К сожалению, все библиотеки Python, которые я использовал до сих пор, были довольно неточными (я оказался в другой стране!). Метод JS оказался единственным точным методом, который я нашел. Знаете ли вы какие-либо обходные пути для этого? Я буду рад принять ваш ответ как ответ, если в течение следующего дня больше не появятся приближающиеся ответы. - person Aphire; 02.06.2015
comment
Вы могли бы потенциально использовать доступные службы поиска IP, такие как MaxMind GeoIP2, у которого, как я полагаю, есть бесплатный устаревший сервис. Предполагая, что вы можете получить IP-адрес пользователя... очевидно, что это не на 100% надежно из-за сетевой безопасности и так далее, но я использовал MaxMind (оплата за услугу), и это довольно точно. - person Alex; 02.06.2015
comment
Спасибо большое!, посмотрю. - person Aphire; 02.06.2015
comment
Только что попробовал устаревшую версию, и, к сожалению, мой IP-адрес все еще находится в Уэльсе (я живу в Англии). В любом случае спасибо за вашу помощь, похоже, мне просто придется платить за лучшее. Ваше здоровье - person Aphire; 02.06.2015