我正在尝试通过网络抓取获取我的位置。因此,我决定使用nordvpn(赞助商XD)网站来查找我的位置。我打开开发工具,发现列出位置的部分在span选项卡中具有class = sh.Range("A1").Resize(
。
问题是当我解析它时,我只是将span标签作为输出。还有js-ipdata-location
作为标记之间的文本。
这是我的代码-
...
我得到的输出为-ip_req = requests.get('https://nordvpn.com/what-is-my-ip/', headers = header)
bs_obj = BeautifulSoup(ip_req.text, 'lxml')
loc = bs_obj.find('span', class_ = 'js-ipdata-location')
print(loc)
。我需要标记之间的文本,在这种情况下这是不可见的。
我什至尝试做<span class="js-ipdata-location">…</span>
,但我只是得到print(loc.text)
作为输出。
请帮助我找到我的位置。
谢谢
答案 0 :(得分:1)
您在页面上看到的数据是从外部URL动态加载的。您可以使用此脚本来打印数据:
import json
import requests
url = 'https://nordvpn.com/wp-admin/admin-ajax.php?action=get_user_info_data'
data = requests.get(url).json()
# uncomment to print all data:
# print(json.dumps(data, indent=4))
print(data['city'], data['region'], data['country'])
打印(以我为例):
Bratislava Bratislava Slovakia