抓取网站以获取GPS位置| Python

问题描述

在我的python项目中,我想获取我的gps位置。 因此,我考虑过分析一个可以提供以下信息的网站: https://www.where-am-i.net/很完美! 所以我写了以下脚本来解析经度:

from bs4 import BeautifulSoup
import requests

#website = "https://schlechtewitze.com/kurze-witze"
website = "https://www.where-am-i.net/"

source = requests.get(website).text
soup = BeautifulSoup(source,'lxml')

for div in soup.find_all('div',class_ = "location"):
    summary = div.p.text
    print(summary)
    print()

几乎可以使用,但是几乎可以使用:它返回:我的位置是:0.0、0.0 如您所见,它返回的不是真实位置,因为我的计算机(Windows 10)阻止了位置请求。例如,当我在浏览器中打开它时:

Asking for permission for getting the location (Sorry for the german)

只有在单击允许(德语为 Zulassen )以获取我的计算机位置的网站后,该位置才会显示。

但是在脚本中我无法“单击此按钮”。

问题结果: 我如何允许网站通过脚本获取我的位置(漂亮的汤,要求)?

(我不介意是否有其他解决方案(没有bs4)来获取我的GPS位置)

解决方法

您可以改用 geocoder

简单地做

import geocoder
g = geocoder.ip('me')
print(g.latlng)
,

正如MukundKulkarni所提到的,该教程使用Selenium解析网站: How I Understood: Getting accurate current geolocation using Python Web-scraping and Selenium

显然,他们不必先允许位置跟踪。我将使用Selenium进行进一步的网页抓取。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...