使用BeautifulSoup提取select的id与option并整理为Pandas DataFrame
实现步骤
首先确保你已经安装了beautifulsoup4和pandas两个依赖库,没装的话可以先执行安装命令:
pip install beautifulsoup4 pandas
然后按如下代码实现解析和DataFrame生成:
from bs4 import BeautifulSoup import pandas as pd # 替换为你实际提取到的HTML代码 html_content = """ <select class="class1", id="id1"> <option value="0">A1</option> <option value="1">A2</option> <option value="2">A3</option> <option value="3">A4</option> <option value="4">A5</option> <option value="5">A6</option> </select> . . . <select class="class2", id="id2"> <option value="0">B1</option> <option value="1">B2</option> <option value="2">B3</option> </select> . . <select class="class3", id="id3"> <option value="0">C1</option> <option value="1">C2</option> <option value="2">C3</option> <option value="2">C4</option> </select> """ # 解析HTML soup = BeautifulSoup(html_content, "html.parser") result = [] # 遍历所有select标签提取数据 for select in soup.find_all("select"): current_id = select.get("id") for option in select.find_all("option"): result.append({ "id": current_id, "option": option.get_text(strip=True) }) # 生成DataFrame df = pd.DataFrame(result)
运行后得到的df就是你需要的两列结构,和你给出的预期输出完全匹配。
注:你提供的原始HTML中select标签的class属性后多了多余的英文逗号,属于语法瑕疵,但BeautifulSoup解析时会自动兼容,不影响数据提取。
内容的提问来源于stack exchange,提问作者Tipo33
相关产品推荐
相关产品推荐

