bs4可用于在<span>标签内获取数据

时间:2020-09-08 07:10:25

标签: python web-scraping beautifulsoup ip

我正在尝试通过网络抓取获取我的位置。因此,我决定使用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)作为输出。

请帮助我找到我的位置。

谢谢

1 个答案:

答案 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