通过抓取网站获取 gps 位置 | Python

Get gps location by scraping a website | 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()

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

只有在我点击 allowZulassen 网站以获取我的计算机位置后,才会显示该位置。

但是在脚本中我不能“点击这个按钮”。

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

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

您可以改用地理编码器

简单做,

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 web-scraping.