私はPythonスクリプトを使用して私の正確な位置を取得したいと思います。 IPの場所に基づいてさまざまなサービスを試しましたが、実際には機能しませんでした(実際の場所から数マイル離れた場所)。HTML5ロケーションツールを使用してPythonで正確なジオロケーションを取得できますか?
私は、Firefox & Google ChromeでHTML5ジオロケーションツールが非常に正確であることに気づいたので、セレンモジュールを使用してウェブブラウザを起動し、これから私の立場をつかむことにしました。
私は2つの問題に直面していますが、まずFirefoxまたはChromeにローカルWebページ上で位置情報サービスを許可することはできません。第二に、私は私の座標を取得するjavascript関数の結果を取得する方法を知りません。ここで
は、私がこれまで何をやったかです:
geo.html
<html>
<head>
<title>Test</title>
<p id="demo"></p>
<script type="text/javascript">
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
return navigator.geolocation.getCurrentPosition(showPosition);
} else {
return "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
</head>
<body>
<p>The element below will receive content</p>
<div id="div" />
<script type="text/javascript">getLocation()</script>
</body>
</html>
test.py
from selenium import webdriver
from pyvirtualdisplay import Display
try:
display = Display(visible=1, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get('file:///path/to/geo.html')
res = browser.execute_script("getLocation()")
print(res)
except KeyboardInterrupt:
browser.quit()
display.stop()
は、あなたがこの問題を解決する方法を知っていますか?
ありがとうございます!
恐らくヘッドレスのChromeがあなたに役立つかもしれません。 https://developers.google.com/web/updates/2017/04/headless-chrome –
あなたがGPSをあなたのコンピュータに接続していない限り、私はそれについて考えていますが、FirefoxとChromeはあなたのIPだけを使うこともできます。多分、彼らのサービスはちょうど良いでしょう。 –
私はそれを調べます、ありがとう! – LeChocdesGitans