RSS-Feed-Analyse: Gesetze im Internet Aktualitätendienst

Ein Tool zur Extraktion und Analyse von RSS-Feeds des Aktualitätendienstes für Gesetze im Internet, einschließlich der Verarbeitung und Visualisierung der Daten.

Lernziele

RSS-Feed-Analyse

  • Abrufen und Parsen von RSS-Feeds mit feedparser.
  • Umwandlung der Feed-Daten in ein Pandas DataFrame.
  • Analyse und Visualisierung der Feed-Daten.

Bibliothek installieren

Dieser Code installiert die Bibliothek feedparser, die für das Parsen von RSS-Feeds verwendet wird.

# prompt: installiere die bibliothek feedparser

# !pip install feedparser

RSS-Feed lesen

Dieser Code liest den RSS-Feed von der angegebenen URL mit feedparser und speichert ihn in einer Variablen.

# prompt: bitte lese den feed https://www.recht.bund.de/rss/feeds/rss_bgbl-1-2.xml mit feedparser und speichere in einer variablen

import feedparser

feed_url = "https://www.recht.bund.de/rss/feeds/rss_bgbl-1-2.xml"
feed = feedparser.parse(feed_url)

Feed in DataFrame umwandeln

Dieser Code wandelt die Feed-Daten in ein Pandas DataFrame um, um sie einfacher analysieren zu können.

# prompt: bitte wandle die feed variable in ein dataframe um

import pandas as pd

# Assuming 'feed' is already defined from the previous code block
df = pd.DataFrame(feed.entries)

Ersten Eintrag darstellen

Dieser Code stellt den ersten Eintrag des DataFrames dar, um einen Überblick über die Struktur der Daten zu erhalten.

# prompt: bitte stelle den ersten eintrag des dataframe dar

df.iloc[0]

Größe des DataFrames anzeigen

Dieser Code zeigt die Größe des DataFrames an, um die Anzahl der Einträge und Spalten zu ermitteln.

# prompt: wie groß ist das dataframe?

df.shape

Häufigkeitsverteilung der Spalte ‘meta_initiant’

Dieser Code stellt die Häufigkeitsverteilung der Spalte meta_initiant dar, um die Verteilung der Initiatoren zu analysieren.

# prompt: stelle die häufigkeitenverteilung der spalte meta_initiant dar

df['meta_initiant'].value_counts()

Visualisierung der Spalte ‘published’

Dieser Code visualisiert die Verteilung der Veröffentlichungsdaten in der Spalte published als Histogramm.

# prompt: visualisiere die spalte published

import matplotlib.pyplot as plt
import seaborn as sns

# Convert 'published' column to datetime objects
df['published'] = pd.to_datetime(df['published'])

# Create the plot
plt.figure(figsize=(12, 6))
sns.histplot(df['published'], bins=30)  # Adjust bins as needed
plt.xlabel('Published Date')
plt.ylabel('Frequency')
plt.title('Distribution of Publication Dates')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

Kreisdiagramm der Spalte ‘meta_typ’

Dieser Code stellt die Verteilung der verschiedenen Typen in der Spalte meta_typ als Kreisdiagramm dar.

# prompt: stelle die spalte meta_typ dar als kreisdiagramm

import feedparser
import pandas as pd
import matplotlib.pyplot as plt

# Assuming 'feed' and 'df' are already defined from the previous code block

# Assuming 'meta_typ' exists, handle potential KeyError
if 'meta_typ' in df.columns:
  # Create the pie chart
  plt.figure(figsize=(8, 8))
  df['meta_typ'].value_counts().plot.pie(autopct='%1.1f%%')
  plt.title('Distribution of meta_typ')
  plt.ylabel('')  # Hide the y-axis label
  plt.show()
else:
  print("Error: 'meta_typ' column not found in the DataFrame.")

Titel der Einträge für ‘Bundesministerium für Arbeit und Soziales’

Dieser Code filtert die Einträge im DataFrame für den Initiator Bundesministerium für Arbeit und Soziales und gibt die Titel der Einträge aus.

# prompt:

# Assuming 'df' is already defined from the previous code block

# Filter the DataFrame for entries where 'meta_initiant' is "Bundesministerium für Arbeit und Soziales"
filtered_df = df[df['meta_initiant'] == 'Bundesministerium für Arbeit und Soziales']

# Extract the titles and print each on a separate line
for title in filtered_df['title']:
    print(title) # Added indentation and print statement to display each title on a new line

Titel der Einträge für ‘Bundesministerium für Gesundheit’

Dieser Code filtert die Einträge im DataFrame für den Initiator Bundesministerium für Gesundheit und gibt die Titel der Einträge aus.

# prompt: welche titel haben die einträge im dataframe df für die spalte meta_initiant Bundesministerium für Gesundheit zeige jeden eintrag in einer separaten zeile

# Assuming 'df' is already defined from the previous code block

# Filter the DataFrame for entries where 'meta_initiant' is "Bundesministerium für Gesundheit"
filtered_df = df[df['meta_initiant'] == 'Bundesministerium für Gesundheit']

# Extract the titles and print each on a separate line
for title in filtered_df['title']:
    print(title)

Fazit

In diesem Notebook haben wir die grundlegenden Techniken zur Analyse von RSS-Feeds anhand des Aktualitätendienstes für Gesetze im Internet erlernt und angewendet. Die wichtigsten gelernten Inhalte umfassen:

  1. Bibliothek installieren:
    • Wir haben gelernt, wie man die Bibliothek feedparser installiert, um RSS-Feeds zu parsen.
  2. RSS-Feed lesen:
    • Wir haben den RSS-Feed von einer URL gelesen und die Daten in einer Variablen gespeichert.
  3. Feed in DataFrame umwandeln:
    • Wir haben die Feed-Daten in ein Pandas DataFrame umgewandelt, um sie einfacher analysieren zu können.
  4. Daten analysieren und visualisieren:
    • Wir haben verschiedene Analysetechniken angewendet, darunter das Darstellen des ersten Eintrags, das Anzeigen der Größe des DataFrames, die Häufigkeitsverteilung der Spalte meta_initiant, die Visualisierung der Veröffentlichungsdaten und die Darstellung der Verteilung der Typen als Kreisdiagramm.
  5. Daten filtern und ausgeben:
    • Wir haben die Einträge im DataFrame für bestimmte Initiatoren gefiltert und die Titel der Einträge ausgegeben.

Diese Schritte haben uns gezeigt, wie man RSS-Feeds effektiv analysieren und visualisieren kann, um wertvolle Informationen zu extrahieren.

Weitere RSS Feeds als Quellen