Skip to content
Back to skills

Imdb Tv Show Scraping And Analysis Pipeline

ASecurity

Scrapes TV show data (title, genres, episodes, rating) from a Next.js based IMDb page, stores it in a MySQL database, and generates genre distribution bar charts.

  • 17 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 30, 2026
datapythonsqlnextjsnodeapidatabase

Works with

  • api

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add gabrielmoreira/agent-skills-mirror --skill imdb-tv-show-scraping-and-analysis-pipeline --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Imdb Tv Show Scraping And Analysis Pipeline?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Imdb Tv Show Scraping And Analysis Pipeline
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-imdb-tv-show-scraping-and-analysis-pipeline/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-imdb-tv-show-scraping-and-analysis-pipeline)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "75c172a7-7b54-4746-82fe-204ba43185a7"
name: "IMDb TV Show Scraping and Analysis Pipeline"
description: "Scrapes TV show data (title, genres, episodes, rating) from a Next.js based IMDb page, stores it in a MySQL database, and generates genre distribution bar charts."
version: "0.1.0"
tags:
  - "python"
  - "web-scraping"
  - "mysql"
  - "matplotlib"
  - "data-analysis"
  - "imdb"
triggers:
  - "scrape imdb tv show data"
  - "parse __NEXT_DATA__ json"
  - "store scraped data in mysql"
  - "plot genre distribution bar graph"
---

# IMDb TV Show Scraping and Analysis Pipeline

Scrapes TV show data (title, genres, episodes, rating) from a Next.js based IMDb page, stores it in a MySQL database, and generates genre distribution bar charts.

## Prompt

# Role & Objective
Act as a Python developer specializing in web scraping and data analysis. Your task is to scrape TV show data from a specific URL structure, parse the embedded JSON, store the data in a MySQL database, and visualize the results.

# Operational Rules & Constraints
1. **Scraping**: Use `requests` and `BeautifulSoup`. Find the `<script id="__NEXT_DATA__">` tag within the HTML soup.
2. **Parsing**: Extract the JSON string from the script tag and parse it using `json.loads()`.
3. **Data Extraction**: Navigate the JSON to `data['props']['pageProps']['pageData']['chartTitles']['edges']`. For each edge, extract:
   - Title: `edge['node']['titleText']['text']`
   - Genres: A list of strings extracted from `edge['node']['titleGenres']['genres']` (get the `text` field for each genre).
   - Episodes: `edge['node']['episodes']['episodes']['total']`
   - Rating: `edge['node']['ratingsSummary']['aggregateRating']`
4. **Database Storage**: Use `mysql.connector` to connect to the database. Create table `shows1` if it does not exist with columns: `id` (INT AUTO_INCREMENT PRIMARY KEY), `title` (VARCHAR), `episodes` (INTEGER), `rating` (DECIMAL), and `genres` (VARCHAR).
5. **Insertion**: Insert the extracted data into the table. Handle missing ratings by converting them to `None` (NULL). Ensure `mydb.commit()` is called after the insertion loop to persist changes.
6. **Querying**: To query titles by a specific genre (e.g., 'Thriller'), use SQL queries with `LIKE '%GenreName%'` or `FIND_IN_SET`.
7. **Visualization**: Use `matplotlib` to create a bar graph showing the number of shows per genre. Use `plt.bar()`, set appropriate labels and titles, and rotate x-axis labels if necessary for readability.

# Anti-Patterns
- Do not forget to commit database transactions.
- Do not assume the JSON structure is flat; use the specific nested paths provided.
- Do not insert string representations of numbers (like 'No rating') into DECIMAL columns; use NULL instead.

## Triggers

- scrape imdb tv show data
- parse __NEXT_DATA__ json
- store scraped data in mysql
- plot genre distribution bar graph

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.