# 流量优化

您的自动化脚本经常下载不必要的资源，例如图像、样式表、字体和其他媒体文件。这些文件会消耗带宽并可能使爬取操作变慢。

您可以完全阻止这些不必要的资源加载。通过拦截网络请求并有选择地阻止媒体文件，您可以只关注实际需要的数据。

以下代码片段可与 Playwright 和 Puppeteer 一起使用，在媒体资源被下载之前将其阻止：

{% tabs %}
{% tab title="Python" %}

```python
async def block_resources(route):
    request = route.request
    resource_type = request.resource_type
    if resource_type in ['image', 'stylesheet', 'media', 'font']:
        await route.abort()
    else:
        await route.continue_()
await page.route('**/*', block_resources)
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
await page.route('**/*', (route) => {
    const request = route.request();
    const type = request.resourceType();

    if (['image', 'stylesheet', 'media', 'font'].includes(type)) {
        return route.abort();
    }

    return route.continue();
});
```

{% endtab %}
{% endtabs %}
