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

从指定网页提取表格生成DataFrame:BeautifulSoup查找无结果问题

解决方法

首先要明确:tab3是<div>的ID,不是表格的ID。你需要先定位到这个div容器,再从它内部提取表格。下面是修正后的完整代码:

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 模拟浏览器请求,避免被网站拦截
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

# 获取网页内容
url = "http://pitzavod.ru/products/upakovka/"
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'  # 确保编码正确,避免俄语内容乱码

# 解析HTML
soup = BeautifulSoup(response.text, 'html.parser')

# 先定位到id为tab3的div容器
tab3_div = soup.find('div', id='tab3')

# 从div容器内提取表格
if tab3_div:
    table = tab3_div.find('table')
    if table:
        # 用pandas将表格转换为DataFrame
        df = pd.read_html(str(table))[0]
        print(df)
    else:
        print("tab3容器内未找到表格元素")
else:
    print("未找到id为tab3的div容器")

关键细节说明:

  • 元素层级逻辑:目标表格嵌套在tab3的div里,不是直接拥有tab3这个ID,必须先定位div再找表格。
  • 请求头设置:很多网站会拦截无标识的爬虫请求,添加User-Agent模拟浏览器访问能提升成功率。
  • 编码处理:俄语网站容易出现乱码,手动指定utf-8编码可保证内容解析正常。
  • 存在性判断:添加元素存在性检查,避免因元素缺失导致代码报错,提升程序健壮性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:10:19