网站数据抓取最优方法咨询及IRS 990 Form Schedule J数据提取需求
抓取IRS 990 Schedule J数据的方案与最佳实践
通用网页数据抓取的最佳实践
- 优先用官方API:如果目标网站提供开放API(比如Propublica的Nonprofit Explorer API),这是最合规稳定的方式,数据格式规整,还能避开反爬限制。
- 遵守
robots.txt规则:爬前检查目标站的robots.txt,明确可抓取范围,避免违规操作。 - 控制请求频率:每两次请求间隔1-3秒,减轻服务器压力,降低IP被封风险。
- 动态内容用无头浏览器:如果页面依赖JS渲染,用Playwright、Puppeteer模拟真实浏览器加载,确保拿到完整数据。
- 结构化存储与去重:抓取后将数据存入CSV、JSON或数据库,同时做好去重,避免冗余。
针对IRS 990 Schedule J的具体抓取与筛选方案
1. 页面结构分析
目标页面的核心元素:
- 纳税人名称:位于页面顶部组织信息区,可通过
h1标签或特定class(如organization-name)定位。 - Schedule J数据:以表格形式呈现,包含高管/关键员工的薪酬信息,可通过
table标签及对应class(如schedule-j-table)定位。
2. 工具选择
根据技术栈选合适工具:
- Python:静态页面用
requests+BeautifulSoup,动态页面用Playwright。 - JavaScript:静态页面用
axios+cheerio,动态页面用Puppeteer。
3. Python代码示例
import requests from bs4 import BeautifulSoup # 目标页面地址 target_url = "https://projects.propublica.org/nonprofits/organizations/452766110/202031279349301913/IRS990ScheduleJ" # 模拟浏览器请求头 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" } # 发送请求并解析 response = requests.get(target_url, headers=headers) response.encoding = "utf-8" soup = BeautifulSoup(response.text, "html.parser") # 提取纳税人名称 taxpayer_name = soup.find("h1", class_="organization-name").get_text(strip=True) print(f"纳税人名称:{taxpayer_name}") # 提取Schedule J表格数据 schedule_j_table = soup.find("table", class_="schedule-j-table") # 跳过表头行,遍历数据行 for row in schedule_j_table.find_all("tr")[1:]: cols = row.find_all("td") if cols: employee_data = { "姓名": cols[0].get_text(strip=True), "职位": cols[1].get_text(strip=True), "薪酬总额": cols[2].get_text(strip=True), "其他补偿": cols[3].get_text(strip=True) # 可根据实际表格列扩展字段 } print(employee_data)
4. 纳税人名称筛选逻辑
如果要批量抓取并筛选:
- 准备目标纳税人名称列表。
- 通过Propublica的搜索功能或API,获取每个纳税人对应的EIN(雇主识别号),构造其Schedule J页面的URL(URL格式通常为
https://projects.propublica.org/nonprofits/organizations/[EIN]/[报税年份ID]/IRS990ScheduleJ)。 - 对每个页面执行抓取,将提取到的纳税人名称与目标列表对比,匹配则保存数据。
5. 反爬应对技巧
- 随机更换
User-Agent,避免固定标识被识别。 - 用代理IP池,IP被限制时自动切换。
- 分批次执行任务,避免短时间内发送大量请求。
内容的提问来源于stack exchange,提问作者Ruk
相关产品推荐
相关产品推荐

