---
title: "ML Training Data Collection API - Build AI Datasets"
description: "Training data collection for machine learning. Scrape clean text and structured web data to build ML training data for NLP, classification, and RAG."
url: https://webscraping.ai/use-cases/training-data-collection
markdown_index: https://webscraping.ai/llms.txt
---
AI & MACHINE LEARNING

# Training Data Collection

Turn the web into ML training data. Scrape clean text, labeled fields, and structured content to build datasets tailored to your models - not the same public corpora everyone trains on.

[Start Free Trial](https://webscraping.ai/auth/sign_up)[View Documentation](https://webscraping.ai/docs)

## AI Models Need Data

Machine learning models are only as good as their training data. Building high-quality datasets requires collecting large volumes of structured data from diverse sources.

Public datasets are often insufficient for specialized domains. You need custom data collection tailored to your model's specific requirements.

#### WebScraping.AI Solution

- **Text Extraction:** Clean, structured text for NLP training
- **Labeled Data:** Extract categorized content with metadata
- **Scale:** Collect millions of data points efficiently
- **Custom Schema:** Structure data exactly how your model needs it

## Training Data Collection

Build datasets for any ML application

#### Text Data

Clean text extraction for NLP, sentiment analysis, and language models.

#### Labeled Content

Extract content with categories, tags, and classification labels.

#### Structured Data

Tables, lists, and structured information in JSON format.

#### Q&A Pairs

Extract question-answer pairs from FAQs and documentation.

## Code Examples

Extract training data from web sources

##### Extract clean text for NLP training

**cURL**

```bash
curl -G "https://api.webscraping.ai/text" \
  --data-urlencode "api_key=YOUR_API_KEY" \
  --data-urlencode "url=https://example.com/article/tech-trends"
```

**Python**

```python
# pip install webscraping_ai
# https://pypi.org/project/webscraping-ai/
from webscraping_ai import Client

client = Client(api_key="YOUR_API_KEY")
text = client.text("https://example.com/article/tech-trends")
print(text)
```

**JavaScript**

```javascript
// npm install webscraping-ai
// https://www.npmjs.com/package/webscraping-ai
import { WebScrapingAI } from 'webscraping-ai';

const client = new WebScrapingAI({ apiKey: 'YOUR_API_KEY' });
const text = await client.text({
  url: 'https://example.com/article/tech-trends',
});
console.log(text);
```

**PHP**

```php
<?php
// composer require webscraping-ai/webscraping-ai-php
// https://packagist.org/packages/webscraping-ai/webscraping-ai-php
require 'vendor/autoload.php';

use WebScrapingAI\Client;

$client = new Client('YOUR_API_KEY');
$text = $client->text('https://example.com/article/tech-trends');
echo is_string($text) ? $text : print_r($text, true);
```

**Ruby**

```ruby
# gem install webscraping_ai
# https://rubygems.org/gems/webscraping_ai
require 'webscraping_ai'

client = WebScrapingAI::Client.new(api_key: 'YOUR_API_KEY')
text = client.text('https://example.com/article/tech-trends')
puts text.inspect
```

**Go**

```go
// go get github.com/webscraping-ai/webscraping-ai-go/v4
// https://pkg.go.dev/github.com/webscraping-ai/webscraping-ai-go/v4
package main

import (
    "context"
    "fmt"

    webscrapingai "github.com/webscraping-ai/webscraping-ai-go/v4"
)

func main() {
    client, _ := webscrapingai.NewClient(&webscrapingai.Config{APIKey: "YOUR_API_KEY"})
    text, _ := client.Text(context.Background(), &webscrapingai.TextOptions{
        URL: "https://example.com/article/tech-trends",
    })
    fmt.Println(text)
}
```

**Java**

```java
// Maven: ai.webscraping:webscraping-ai:4.2.0
// https://central.sonatype.com/artifact/ai.webscraping/webscraping-ai
import ai.webscraping.Client;
import ai.webscraping.Config;
import ai.webscraping.option.TextOptions;

Client client = new Client(Config.builder().apiKey("YOUR_API_KEY").build());
String text = client.text(TextOptions.builder()
    .url("https://example.com/article/tech-trends")
    .build());
System.out.println(text);
```

**C#**

```csharp
// dotnet add package WebScrapingAI
// https://www.nuget.org/packages/WebScrapingAI
using WebScrapingAI;

var client = new WebScrapingAIClient(new WebScrapingAIClientOptions { ApiKey = "YOUR_API_KEY" });
var text = await client.TextAsync(new TextRequest {
    Url = "https://example.com/article/tech-trends",
});
Console.WriteLine(text);
```

##### Extract labeled content for classification training

**cURL**

```bash
curl -G "https://api.webscraping.ai/ai/fields" \
  --data-urlencode "api_key=YOUR_API_KEY" \
  --data-urlencode "url=https://ecommerce-site.com/product/wireless-mouse" \
  --data-urlencode "fields[title]=Product title" \
  --data-urlencode "fields[description]=Product description text" \
  --data-urlencode "fields[category]=Product category" \
  --data-urlencode "fields[subcategory]=Product subcategory" \
  --data-urlencode "fields[features]=Product features, comma-separated" \
  --data-urlencode "fields[sentiment_indicators]=Positive and negative words used in description"
# Response:
# {
# "result": {
# "title": "Wireless Gaming Mouse Pro",
# "description": "High-precision wireless gaming mouse with...",
# "category": "Electronics",
# "subcategory": "Computer Accessories",
# "features": "16000 DPI, RGB lighting, Ergonomic design",
# "sentiment_indicators": "Positive: professional, precision, comfortable; negative: none"
# }
# }
```

**Python**

```python
# pip install webscraping_ai
# https://pypi.org/project/webscraping-ai/
from webscraping_ai import Client

client = Client(api_key="YOUR_API_KEY")
result = client.fields(
    "https://ecommerce-site.com/product/wireless-mouse",
    fields={
        "title": "Product title",
        "description": "Product description text",
        "category": "Product category",
        "subcategory": "Product subcategory",
        "features": "Product features, comma-separated",
        "sentiment_indicators": "Positive and negative words used in description",
    },
)
print(result)
# Response:
# {
# "result": {
# "title": "Wireless Gaming Mouse Pro",
# "description": "High-precision wireless gaming mouse with...",
# "category": "Electronics",
# "subcategory": "Computer Accessories",
# "features": "16000 DPI, RGB lighting, Ergonomic design",
# "sentiment_indicators": "Positive: professional, precision, comfortable; negative: none"
# }
# }
```

**JavaScript**

```javascript
// npm install webscraping-ai
// https://www.npmjs.com/package/webscraping-ai
import { WebScrapingAI } from 'webscraping-ai';

const client = new WebScrapingAI({ apiKey: 'YOUR_API_KEY' });
const result = await client.fields({
  url: 'https://ecommerce-site.com/product/wireless-mouse',
  fields: {
    title: 'Product title',
    description: 'Product description text',
    category: 'Product category',
    subcategory: 'Product subcategory',
    features: 'Product features, comma-separated',
    sentiment_indicators: 'Positive and negative words used in description',
  },
});
console.log(result);
// Response:
// {
// "result": {
// "title": "Wireless Gaming Mouse Pro",
// "description": "High-precision wireless gaming mouse with...",
// "category": "Electronics",
// "subcategory": "Computer Accessories",
// "features": "16000 DPI, RGB lighting, Ergonomic design",
// "sentiment_indicators": "Positive: professional, precision, comfortable; negative: none"
// }
// }
```

**PHP**

```php
<?php
// composer require webscraping-ai/webscraping-ai-php
// https://packagist.org/packages/webscraping-ai/webscraping-ai-php
require 'vendor/autoload.php';

use WebScrapingAI\Client;

$client = new Client('YOUR_API_KEY');
$result = $client->fields('https://ecommerce-site.com/product/wireless-mouse', [
    'title' => 'Product title',
    'description' => 'Product description text',
    'category' => 'Product category',
    'subcategory' => 'Product subcategory',
    'features' => 'Product features, comma-separated',
    'sentiment_indicators' => 'Positive and negative words used in description',
]);
print_r($result);
// Response:
// {
// "result": {
// "title": "Wireless Gaming Mouse Pro",
// "description": "High-precision wireless gaming mouse with...",
// "category": "Electronics",
// "subcategory": "Computer Accessories",
// "features": "16000 DPI, RGB lighting, Ergonomic design",
// "sentiment_indicators": "Positive: professional, precision, comfortable; negative: none"
// }
// }
```

**Ruby**

```ruby
# gem install webscraping_ai
# https://rubygems.org/gems/webscraping_ai
require 'webscraping_ai'

client = WebScrapingAI::Client.new(api_key: 'YOUR_API_KEY')
result = client.fields(
  'https://ecommerce-site.com/product/wireless-mouse',
  fields: {
    title: 'Product title',
    description: 'Product description text',
    category: 'Product category',
    subcategory: 'Product subcategory',
    features: 'Product features, comma-separated',
    sentiment_indicators: 'Positive and negative words used in description',
  }
)
puts result.inspect
# Response:
# {
# "result": {
# "title": "Wireless Gaming Mouse Pro",
# "description": "High-precision wireless gaming mouse with...",
# "category": "Electronics",
# "subcategory": "Computer Accessories",
# "features": "16000 DPI, RGB lighting, Ergonomic design",
# "sentiment_indicators": "Positive: professional, precision, comfortable; negative: none"
# }
# }
```

**Go**

```go
// go get github.com/webscraping-ai/webscraping-ai-go/v4
// https://pkg.go.dev/github.com/webscraping-ai/webscraping-ai-go/v4
package main

import (
    "context"
    "fmt"

    webscrapingai "github.com/webscraping-ai/webscraping-ai-go/v4"
)

func main() {
    client, _ := webscrapingai.NewClient(&webscrapingai.Config{APIKey: "YOUR_API_KEY"})
    result, _ := client.Fields(context.Background(), &webscrapingai.FieldsOptions{
        URL: "https://ecommerce-site.com/product/wireless-mouse",
        Fields: map[string]string{
            "title": "Product title",
            "description": "Product description text",
            "category": "Product category",
            "subcategory": "Product subcategory",
            "features": "Product features, comma-separated",
            "sentiment_indicators": "Positive and negative words used in description",
        },
    })
    fmt.Println(result.Result)
}
// Response:
// {
// "result": {
// "title": "Wireless Gaming Mouse Pro",
// "description": "High-precision wireless gaming mouse with...",
// "category": "Electronics",
// "subcategory": "Computer Accessories",
// "features": "16000 DPI, RGB lighting, Ergonomic design",
// "sentiment_indicators": "Positive: professional, precision, comfortable; negative: none"
// }
// }
```

**Java**

```java
// Maven: ai.webscraping:webscraping-ai:4.2.0
// https://central.sonatype.com/artifact/ai.webscraping/webscraping-ai
import ai.webscraping.Client;
import ai.webscraping.Config;
import ai.webscraping.option.FieldsOptions;
import ai.webscraping.result.FieldsResult;

Client client = new Client(Config.builder().apiKey("YOUR_API_KEY").build());
FieldsResult result = client.fields(FieldsOptions.builder()
    .url("https://ecommerce-site.com/product/wireless-mouse")
    .addField("title", "Product title")
    .addField("description", "Product description text")
    .addField("category", "Product category")
    .addField("subcategory", "Product subcategory")
    .addField("features", "Product features, comma-separated")
    .addField("sentiment_indicators", "Positive and negative words used in description")
    .build());
System.out.println(result.getResult());
// Response:
// {
// "result": {
// "title": "Wireless Gaming Mouse Pro",
// "description": "High-precision wireless gaming mouse with...",
// "category": "Electronics",
// "subcategory": "Computer Accessories",
// "features": "16000 DPI, RGB lighting, Ergonomic design",
// "sentiment_indicators": "Positive: professional, precision, comfortable; negative: none"
// }
// }
```

**C#**

```csharp
// dotnet add package WebScrapingAI
// https://www.nuget.org/packages/WebScrapingAI
using WebScrapingAI;

var client = new WebScrapingAIClient(new WebScrapingAIClientOptions { ApiKey = "YOUR_API_KEY" });
var result = await client.FieldsAsync(new FieldsRequest {
    Url = "https://ecommerce-site.com/product/wireless-mouse",
    Fields = new Dictionary<string, string> {
        ["title"] = "Product title",
        ["description"] = "Product description text",
        ["category"] = "Product category",
        ["subcategory"] = "Product subcategory",
        ["features"] = "Product features, comma-separated",
        ["sentiment_indicators"] = "Positive and negative words used in description",
    },
});
Console.WriteLine(result.Result);
// Response:
// {
// "result": {
// "title": "Wireless Gaming Mouse Pro",
// "description": "High-precision wireless gaming mouse with...",
// "category": "Electronics",
// "subcategory": "Computer Accessories",
// "features": "16000 DPI, RGB lighting, Ergonomic design",
// "sentiment_indicators": "Positive: professional, precision, comfortable; negative: none"
// }
// }
```

## Benefits for ML Teams

**Custom Datasets:** Build training data tailored to your specific use case.

**Clean Data:** Get properly formatted, clean text ready for processing.

**Diverse Sources:** Collect from multiple websites for better coverage.

**Scalable:** Collect thousands or millions of data points.

**Structured Output:** JSON format ready for ML pipelines.

#### Training Data Applications

**NLP & Text Classification**

Extract labeled text for sentiment, topic, or intent classification

**Named Entity Recognition**

Collect examples of entities in context

**Question Answering**

Build Q&A datasets from FAQ pages and forums

**RAG Knowledge Bases**

Collect content for retrieval-augmented generation

## Related Use Cases

More data collection solutions

[Product Data](https://webscraping.ai/use-cases/product-data-aggregation): Structured e-commerce data for recommendation models.

[Social Media Data](https://webscraping.ai/use-cases/social-media-monitoring): Text data for sentiment and trend analysis.

[Content Analysis](https://webscraping.ai/use-cases/competitor-content-analysis): Text corpus for language models.

## Start Building Your Dataset

Get started with 2,000 free API credits. No credit card required.

[Start Free Trial](https://webscraping.ai/auth/sign_up)[View API Documentation](https://webscraping.ai/docs)
