# Coursera Listing Scraper

Scrape course information (description, educator, rating, etc.) from Coursera by Keywords,

- Template page: [https://www.octoparse.com/template/coursera-listados-scraper](https://www.octoparse.com/template/coursera-listados-scraper)
- Categories: Education
- Status: `PUBLISHED`
- Run mode: `BOTH`

## Pricing

Free.

## What is an Octoparse template?

An Octoparse template is a ready-to-use scraping workflow with predefined inputs and structured outputs. Use the exact parameter keys below; do not invent parameters.

## Overview

This ready-to-use template collects structured data from listing pages, search-results pages.

## Output

The current workflow extracts 9 fields, including `Curso`, `Descripción`, `Duración`, `Educador`, `Nivel`, `Rating`, `Reseña`, `Tipo_de_producto`, `certificado`.

## Use Cases

- Use structured results for research, comparison, and monitoring.
- Collect rows without building the extraction workflow from scratch.
- Combine results with other templates for downstream enrichment.
- Review a representative result before starting a large batch.

## Why Octoparse

- **No coding required:** complete Keywords and start the template in local or cloud mode.
- **Flexible export:** review and export results as CSV, Excel, or JSON.

## Input

### Keywords

Optional. Keywords

## How to Use

## Coursera Listing Scraper

Collects course information (educator, description, rating, etc.) from Coursera by keyword search. Data is sourced from [Coursera](https://www.coursera.org/).

### Input

- **Keywords** (optional) – Enter search terms.

### Output Fields

- `Educador`
- `Curso`
- `Descripción`
- `Rating`
- `Reseña`
- `Nivel`
- `Tipo_de_producto`
- `Duración`
- `certificado`

### How to Use

1. Open the template and select **Try it** or **Start**.
2. Fill in the input fields.
3. Choose a local or cloud run.
4. Review the output rows and export or process the structured data.

### Limitations

- Collects only the fields listed above from listing pages; does not add data not displayed by Coursera.
- Fields such as `Tipo_de_producto`, `Duración`, and `certificado` can be empty when the source record does not provide them.

### Tips

- Start with one or a few inputs and review the returned rows before scaling.
- Use the most specific valid Keywords to reduce unrelated or duplicate records.
- Use a stable identifier from `Educador`, `Curso`, or other fields as a deduplication key when available.

### Scheduling & API

- You can schedule recurring runs locally or in the cloud.
- Export data to CSV, Excel, JSON, databases, or cloud storage, or send to reporting/AI workflows via [Octoparse OpenAPI](https://www.octoparse.com/docs/en/api-reference/agenttools-api/search-templates).
- Scheduling and API access may require a paid Octoparse plan. Keep your computer and Octoparse open for local scheduled runs.

## Limitations

Results depend on what the source site exposes at run time. Fields may be empty when a source page does not provide a value. The template enforces the input limits shown above.

## Tips

Use specific, valid inputs and review a representative result before starting a large batch. Remove duplicate inputs when repeated records are not needed.

## FAQ

### What do I need to enter?

Use the exact inputs and limits listed above.

### What data does this template return?

See Output Schema below; availability can vary by source record.

### How is usage billed?

See the Pricing section above for current pricing and billing details.

## Related Templates

- [Booking.com Hotel Listing Scraper](https://www.octoparse.com/template/booking-com-scraper)
- [Google Maps Store Listing Scraper (Japan)](https://www.octoparse.com/template/google-maps-store-listing-scraper)
- [Zillow Listing Scraper (by URL)](https://www.octoparse.com/template/zillow-scraper)
- [Mercadolibre Listing Pages Scraper (Keywords)](https://www.octoparse.com/template/mercadolibre-listados-scraper)
- [Google Maps Listing Scraper (Spanish)](https://www.octoparse.com/template/google-maps-scraper-tiendas-detalles-palabrasclave)

## Input Schema

```json
{
  "title": "Coursera Listing Scraper input",
  "description": "Input parameters configured for the current published template version.",
  "type": "object",
  "schemaVersion": 1,
  "additionalProperties": false,
  "properties": {
    "keywords": {
      "title": "Keywords",
      "description": "Keywords",
      "type": "string",
      "x-octoparse": {
        "apiEnabled": true
      }
    }
  },
  "required": []
}
```

## Input JSON Example

Example 1

```json
{
  "keywords": "python"
}
```

Example 2

```json
{
  "keywords": "python"
}
```

Example 3

```json
{
  "keywords": "python"
}
```

Example 4

```json
{
  "keywords": "python"
}
```

Example 5

```json
{
  "keywords": "python"
}
```


## Output Schema

```json
{
  "schemaVersion": 1,
  "type": "object",
  "properties": {
    "Curso": {
      "type": "string",
      "description": ""
    },
    "Descripción": {
      "type": "string",
      "description": ""
    },
    "Duración": {
      "type": "string",
      "description": ""
    },
    "Educador": {
      "type": "string",
      "description": ""
    },
    "Nivel": {
      "type": "string",
      "description": ""
    },
    "Rating": {
      "type": "string",
      "description": ""
    },
    "Reseña": {
      "type": "string",
      "description": ""
    },
    "Tipo_de_producto": {
      "type": "string",
      "description": ""
    },
    "certificado": {
      "type": "string",
      "description": ""
    }
  },
  "title": "Coursera Listing Scraper output",
  "description": "Initial output fields derived from the current published implementation. Field descriptions are maintained by Data Center; production field names and types should be refreshed from recent successful runs.",
  "additionalProperties": false
}
```

## Output Example

Example 1

```json
{
  "Curso": "Python for Everybody",
  "Descripción": "Skills you'll gain: Database Design, Data Processing, Debugging, Web Scraping, File I/O, Data Store, Data Visualization, Relational Databases, Restful API, Web Services, SQL, Databases, Data Visualization Software, JSON, Data Presentation, Extensible Markup Language (XML), Data Structures, Programming Principles, Python Programming, Program Development",
  "Duración": "3 - 6 Months",
  "Educador": "University of Michigan",
  "Nivel": "★ 4.8 (281K)",
  "Rating": "",
  "Reseña": "",
  "Tipo_de_producto": "Beginner",
  "certificado": ""
}
```

Example 2

```json
{
  "Curso": "Python for Everybody",
  "Descripción": "Skills you'll gain: Database Design, Data Processing, Debugging, Web Scraping, File I/O, Data Store, Data Visualization, Database Software, Relational Databases, Restful API, Web Services, SQL, Databases, Data Visualization Software, JSON, Data Presentation, Data Structures, Programming Principles, Python Programming, Program Development",
  "Duración": "3 - 6 Months",
  "Educador": "University of Michigan",
  "Nivel": "★ 4.8 (281K)",
  "Rating": "",
  "Reseña": "",
  "Tipo_de_producto": "Beginner",
  "certificado": ""
}
```

Example 3

```json
{
  "Curso": "Python for Data Science, AI & Development",
  "Descripción": "Skills you'll gain: Data Import/Export, Python Programming, NumPy, Scripting, Data Collection, Data Analysis",
  "Duración": "1 - 3 Months",
  "Educador": "IBM",
  "Nivel": "★ 4.6 (44K)",
  "Rating": "",
  "Reseña": "",
  "Tipo_de_producto": "Beginner",
  "certificado": ""
}
```

Example 4

```json
{
  "Curso": "Python for Everybody",
  "Descripción": "Skills you'll gain: Database Design, Data Processing, Debugging, Web Scraping, File I/O, Data Store, Data Visualization, Relational Databases, Restful API, Web Services, SQL, Databases, Data Visualization Software, JSON, Data Presentation, Extensible Markup Language (XML), Data Structures, Programming Principles, Python Programming, Program Development",
  "Duración": "3 - 6 Months",
  "Educador": "University of Michigan",
  "Nivel": "Beginner",
  "Rating": "4.8",
  "Reseña": "281K reviews",
  "Tipo_de_producto": "Specialization",
  "certificado": "Build toward a degree"
}
```

Example 5

```json
{
  "Curso": "IBM Data Science",
  "Descripción": "Skills you'll gain: Data Storytelling, Dashboard Creation, Dashboard, Data Presentation, Plotly, Data Visualization Software, Web Scraping, Data Visualization, Data Wrangling, SQL, Plot (Graphics), Exploratory Data Analysis, Unsupervised Learning, Model Evaluation, Data Cleansing, Jupyter, Data Literacy, Generative AI, Professional Networking, Data Import/Export",
  "Duración": "3 - 6 Months",
  "Educador": "IBM",
  "Nivel": "Beginner",
  "Rating": "4.6",
  "Reseña": "151K reviews",
  "Tipo_de_producto": "Professional Certificate",
  "certificado": "Build toward a degree"
}
```

## API

`POST https://openapi.octoparse.com/api/agentTools/executeTask`

This is the OpenAPI Agent Tools `executeTask` endpoint. Authenticate with a Bearer token.

Request body:

`templateName` is the template slug; `parameters` is a JSON object string whose keys match Input Schema; `taskName`, `idempotencyKey`, and `maxCollectedRows` are optional.

Obtain a token:

```http
POST https://openapi.octoparse.com/token
Content-Type: application/json

{
  "username": "YOUR_USERNAME",
  "password": "YOUR_PASSWORD",
  "grant_type": "password"
}
```

Use `data.access_token` as `Authorization: Bearer <token>`. After starting, poll `getTaskStatus` and export with `exportData`.

```json
{
  "templateName": "coursera-listados-scraper",
  "taskName": "Coursera Listing Scraper",
  "parameters": "{\"keywords\":\"python\"}"
}
```

## Python Example

```python
import json
import requests

OPENAPI_BASE = "https://openapi.octoparse.com"
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"

parameters = json.loads("{\"keywords\":\"python\"}")

response = requests.post(
    f"{OPENAPI_BASE}/api/agentTools/executeTask",
    headers={
        "Authorization": f"Bearer {ACCESS_TOKEN}",
        "Content-Type": "application/json",
    },
    json={
        "templateName": "coursera-listados-scraper",
        "taskName": "Coursera Listing Scraper",
        "parameters": json.dumps(parameters, ensure_ascii=False),
    },
    timeout=60,
)
print(response.status_code)
print(response.json())
```

## HTTP/cURL Example

```bash
curl -X POST "https://openapi.octoparse.com/api/agentTools/executeTask" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "templateName": "coursera-listados-scraper",
  "taskName": "Coursera Listing Scraper",
  "parameters": "{\"keywords\":\"python\"}"
}
JSON
```

## MCP Setup

Connect an MCP-compatible AI client to `https://mcp.octoparse.com` using browser OAuth or an Octoparse API key. Find `coursera-listados-scraper`, inspect its inputs, create a cloud task with the exact Input Schema keys, and export JSON results.

## Machine-readable Resources

- [Template contract](https://www.octoparse.com/templates/coursera-listados-scraper.json)
- [Manifest](https://www.octoparse.com/templates/coursera-listados-scraper-manifest.json)
