如何从iframe中提取爬取内容 纽约州新冠疫苗邮编级数据爬取问题
你当前代码中的iframe地址是站点全局页脚的资源,不包含目标疫苗数据表格,可按以下逻辑调整代码:
- 从原页面DOM中定位到承载疫苗数据的目标iframe,提取其真实访问地址
- 请求该iframe地址,解析返回内容中的表格结构
- 提取表格内容后可直接结构化存储
可运行参考代码:
import requests from bs4 import BeautifulSoup import pandas as pd s = requests.Session() # 请求原页面 r = s.get("https://coronavirus.health.ny.gov/zip-code-vaccination-data") soup = BeautifulSoup(r.content, "html.parser") # 定位数据iframe并补全协议头 data_iframe = soup.find("iframe", title="COVID-19 Vaccination by Zip Code") iframe_src = data_iframe["src"] if iframe_src.startswith("//"): iframe_src = f"https:{iframe_src}" # 请求数据页面 r = s.get(iframe_src) soup = BeautifulSoup(r.content, "html.parser") # 提取表格,可直接用pandas转结构化数据,也可手动遍历tr、td标签提取 target_table = soup.find("table") df = pd.read_html(str(target_table))[0] # 示例:打印前5行数据,可按需调用df.to_csv()保存为本地文件 print(df.head())
如果不需要使用pandas,也可以直接遍历表格的<tr>行标签,每行内遍历<td>单元格标签提取对应内容即可。
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

