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

如何用Python抓取网站中的Blob URL并获取对应CSV文件?

抓取Blob URL中CSV内容的解决方案

问题原因

  • 静态HTML中不存在Blob链接:requests获取的是服务器返回的原始静态HTML,而Blob URL是页面加载完成后由前端JavaScript动态生成的,因此BeautifulSoup无法在静态源码中找到该链接。
  • Blob URL无法直接请求:blob:是浏览器内部协议,仅用于引用内存中的二进制数据,并非标准网络请求协议,requests库不支持解析该协议,直接请求必然报错。

解决方法

方法一:用无头浏览器模拟执行JS(直观易实现)

通过Playwright或Selenium模拟浏览器加载页面,等待JavaScript执行完成后获取CSV内容。以下是Playwright的实现示例:

  1. 先安装依赖:
pip install playwright
playwright install chromium
  1. 代码实现:
from playwright.sync_api import sync_playwright
import pandas as pd
import io

with sync_playwright() as p:
    # 启动无头浏览器
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto("https://worldpopulationreview.com/country-rankings/exports-by-country")
    
    # 等待下载按钮加载完成,触发下载并监听
    page.wait_for_selector('a[download="csvData.csv"]')
    with page.expect_download() as download_info:
        page.click('a[download="csvData.csv"]')
    download = download_info.value
    
    # 读取下载的CSV内容并转为DataFrame
    csv_content = download.read().decode('utf-8')
    df = pd.read_csv(io.StringIO(csv_content))
    print(df.head())
    
    browser.close()

方法二:直接请求数据源API(高效推荐)

通过浏览器抓包找到生成CSV的原始API接口,直接请求接口获取数据,无需模拟浏览器:

  1. 抓包步骤:

    • 打开浏览器开发者工具(F12),切换到「Network」标签;
    • 点击页面的下载CSV按钮,观察新增的网络请求,找到返回CSV/JSON数据的接口;
    • 复制接口URL及必要的请求头(如User-Agent、Referer)。
  2. 代码实现(示例,需替换为实际抓包的API地址):

import requests
import pandas as pd
import io

# 替换为实际抓包得到的API接口URL
api_url = "https://api.worldpopulationreview.com/v1/countries/exports"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Referer": "https://worldpopulationreview.com/country-rankings/exports-by-country"
}

response = requests.get(api_url, headers=headers)
# 若接口返回JSON,转为DataFrame处理
data = response.json()
df = pd.DataFrame(data)
print(df.head())
# 保存为CSV文件
df.to_csv("exports.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 12:39:22