You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用BeautifulSoup爬取地点GPS信息仅获取纬度缺经度问题求助

问题解决思路与修正方案

你无法提取经度的核心原因是代码中a = li.find_all("li")[0:1]做了切片限制,仅提取每个列表组的第一个<li>元素,而经度和纬度是同一个列表组下相邻的两个<li>节点,自然无法抓取到经度数据。

可行的优化方向:

  • 优先定位到存储GPS坐标的专属列表组,无需遍历所有列表组,避免抓取到无关的统计数据
  • 移除<li>元素的切片限制,遍历该列表组下所有相关的<li>节点
  • 优化文本提取逻辑,适配页面的节点结构,避免遗漏数据

修正后的可正常提取经纬度的代码如下:

from bs4 import BeautifulSoup
import requests
import pandas as pd

tickers = ['wies_Blizyn']
for ticker in tickers:
    page = requests.get('https://www.polskawliczbach.pl/' + ticker)
    soup = BeautifulSoup(page.content, 'lxml')
    dic = {"name": [], "value": []}
    # 直接定位到包含GPS坐标的列表组
    gps_ul = soup.select_one("ul.list-group:has(li span#szerokosc-geograficzna)")
    if gps_ul:
        # 遍历所有li节点,取消切片限制
        for li in gps_ul.find_all("li"):
            try:
                name = li.find(text=True, recursive=False).strip()
                value = li.find("span").text.replace(" ", ",")
                print(name, "\t", value)
                dic["name"].append(name)
                dic["value"].append(value)
            except Exception as e:
                continue
    df = pd.DataFrame(dic)

内容的提问来源于stack exchange,提问作者Jaroslaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 12:48:05