Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
IT Security NachrichtenFoto-News: Nikons Vollformatkamera ohne Sucher, neues Luminar(24.09.2026 um 16:21 Uhr)
IT Security NachrichtenIs your Apple Watch 12 or Ultra 4 randomly restarting? Here’s the fix(24.09.2026 um 15:42 Uhr)
IT Security DownloadsGitHub Release: nextcloud/server v35.0.1 (24.09.2026)(24.09.2026 um 15:54 Uhr)
IT Security DownloadsBlueStacks Download - Android-Apps auf dem PC nutzen(24.09.2026 um 15:18 Uhr)
IT NachrichtenFive years later, you can finally buy Google Beam(24.09.2026 um 15:26 Uhr)
IT Security NachrichtenFoto-News: Nikons Vollformatkamera ohne Sucher, neues Luminar(24.09.2026 um 16:21 Uhr)
IT Security NachrichtenIs your Apple Watch 12 or Ultra 4 randomly restarting? Here’s the fix(24.09.2026 um 15:42 Uhr)
IT Security DownloadsGitHub Release: nextcloud/server v35.0.1 (24.09.2026)(24.09.2026 um 15:54 Uhr)
IT Security DownloadsBlueStacks Download - Android-Apps auf dem PC nutzen(24.09.2026 um 15:18 Uhr)
IT NachrichtenFive years later, you can finally buy Google Beam(24.09.2026 um 15:26 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

Web scraping and analysing foreign languages data

Recently I decided that I would like to do a quick web scraping and data analysis project. Because my brain likes to come up with big ideas that would take lots of time, I decided to challenge myself to come up with something simple that…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Recently I decided that I would like to do a quick web scraping and data analysis project. Because my brain likes to come up with big ideas that would take lots of time, I decided to challenge myself to come up with something simple that could viably be done in a few hours.



Here's what I came up with:



As my undergrad degree was originally in Foreign Languages (French and Spanish), I thought it'd be fun to web scrape some language related data. I wanted to use the BeautifulSoup library, which can parse static html but isn't able to deal with dynamic web pages that need onclick events to reveal the whole dataset (ie. clicking on the next page of data if the page is paginated).



I decided on this Wikipedia page of the most commonly spoken languages.



Table of most commonly spoken languages from wikipedia



I wanted to do the following:




  • Get the html for the page and output to a .txt file

  • Use beautiful soup to parse the html file and extract the table data

  • Write the table to a .csv file

  • Come up with 10 questions I wanted to answer for this dataset using data analysis

  • Answer those questions using pandas and a Jupyter Notebook



I decided on splitting out the project into these steps for separation of concern, but also I wanted to avoid making multiple unnecessary requests to get the html from Wikipedia by rerunning the script. Saving the html file and then working with it in a separate script means that you don't need to keep re-requesting the data, as you already have it.





The link to my github repo for this project is: https://github.com/gabrielrowan/Foreign-Languages-Analysis






Getting the html



First, I retrieved and output the html. After working with C# and C++, it's always a novelty to me how short and concise Python code is 😄





url = 'https://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers'

response = requests.get(url)
html = response.text

with open("languages_html.txt", "w", encoding="utf-8") as file:
file.write(html)










Parsing the html



To parse the html with Beautiful soup and select the table I was interested in, I did:




with open("languages_html.txt", "r", encoding="utf-8") as file:
soup = BeautifulSoup(file, 'html.parser')

# get table
top_languages_table = soup.select_one('.wikitable.sortable.static-row-numbers')








Then, I got the table header text to get the column names for my pandas dataframe:





# get column names
columns = top_languages_table.find_all("th")
column_titles = [column.text.strip() for column in columns]







After that, I created the dataframe, set the column names, retrieved each table row and wrote each row to the dataframe:




# get table rows
table_data = top_languages_table.find_all("tr")

# define dataframe
df = pd.DataFrame(columns=column_titles)

# get table data
for row in table_data[1:]:
row_data = row.find_all('td')
row_data_txt = [row.text.strip() for row in row_data]
print(row_data_txt)
df.loc[len(df)] = row_data_txt








Note - without using strip() there were \n characters in the text which weren't needed.



Last, I wrote the dataframe to a .csv.






Analysing the data



In advance, I'd come up with these questions that I wanted to answer from the data:




  1. What is the total number of native speakers across all languages in the dataset?

  2. How many different types of language family are there?

  3. What is the total number of native speakers per language family?

  4. What are the top 3 most common language families?

  5. Create a pie chart showing the top 3 most common language families

  6. What is the most commonly occuring Language family - branch pair?

  7. Which languages are Sino-Tibetan in the table?

  8. Display a bar chart of the native speakers of all Romance and Germanic languages

  9. What percentage of total native speakers is represented by the top 5 languages?

  10. Which branch has the most native speakers, and which has the least?






The Results



While I won't go into the code to answer all of these questions, I will go into the 2 ones that involved charts.






Display a bar chart of the native speakers of all Romance and Germanic languages



First, I created a dataframe that only included rows where the branch name was 'Romance' or 'Germanic'




romance_lang = df[(df['Branch'] == 'Romance') | (df['Branch'] == 'Germanic')]







Then I specified the x axis, y axis and the colour of the bars that I wanted for the chart:




romance_lang.plot.bar(x='Language', y='Native speakers(in millions)', 
color='#26C6DA')






This created:



bar chart of speakers of romance and germanic languages






Create a pie chart showing the top 3 most common language families



To create the pie chart, I retrieved the top 3 most common language families and put these in a dataframe.



This code groups gets the total sum of native speakers per language family, sorts them in descending order, and extracts the top 3 entries.




top_3_lang_families = df.groupby('Language family')['Native speakers(in millions)'].sum().sort_values(ascending=False)[:3]







Then I put the data in a pie chart, specifying the y axis of 'Native Speakers' and a legend, which creates colour coded labels for each language family shown in the chart.





pie_chart_top_3_lang_families = top_3_lang_families.plot.pie(y='Native speakers(in millions)')
pie_chart_top_3_lang_families.legend(
labels=top_3_lang_families.index,
title="Language Families",
loc="upper right"
)








pie chart of most common language families



The code and responses for the rest of the questions can be found here. I used markdown in the notebook to write the questions and their answers.






Next Time:



For my next iteration of a web scraping & data analysis project, I'd like to make things more complicated with:




  • Web scraping a dynamic page where more data is revealed on click/ scroll

  • Analysing a much bigger dataset, potentially one that needs some data cleaning work before analysis



Tendi meme






Final thoughts



Even though it was a quick one, I enjoyed doing this project. It reminded me how useful short, manageable projects can be for getting the practice reps in 💪 Plus, extracting data from the internet and creating charts from it, even with a small dataset, is fun 😊

SOC Incident Playbook: Remote Code Execution (RCE) Defense
title: Detect Exploitation - Web scraping and analysing foreign languages data
id: 54ffa5f9-404d-4045-95b0-5ba0da2e7e44
status: experimental
description: Automatisch generierte SIEM-Erkennungsregel basierend auf CTI Intelligence
references:
  - https://tsecurity.de/
author: iShareStuff CTI Automated Detection Engine
date: 2026-09-24
logsource:
  category: network_connection
  product: any
detection:
  selection:
      CommandLine|contains:
        - 'exploit'
  condition: selection
falsepositives:
  - Legitime administrative Zugriffe oder Penetrationstests
level: high
tags:
  - attack.initial_access
rule CTI_Threat_Indicator {
    meta:
        author = "iShareStuff CTI Automated Detection Engine"
        date = "2026-09-24"
        description = "YARA Signature for "
    strings:
        $str = "Web scraping and analysing for" ascii wide
    condition:
        any of them
}
tsecurity.de Cognitive Threat RAG
Fokus-Vektor:

Kognitive Analyse für identifizierte Bedrohung: Erhöhte Bedrohungslage im Bereich Web scraping and analysing foreign langu.... Basierend auf 368k Vektor-Korrelationen werden sofortige Isolationsmaßnahmen für betroffene Endpunkte empfohlen.

🛡️ Angriffsfläche & Exposure

Netzwerk/Remote-Zugriff ohne Vorauthentifizierung möglich.

Empfohlene Sofortmaßnahmen
  • 1. Perimeter-Inspektion: Relevante Portfreigaben und exponierte Endpunkte unverzüglich scannen.
  • 2. Patch-Applikation: Hersteller-Hotfix einspielen oder betroffene Daemons in isolierte DMZ-Segmente überführen.
  • 3. Telemetrie & EDR-Alerts: Prozessaufrufe und Child-Processes auf anomale Shell-Spawns überwachen.
🔗 Semantisch verwandte Zero-Days MariaDB 11.7 VEC
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Web scraping and analysing foreign languages data

Thematisch verwandte Begriffe: scraping, analysing, foreign, languages · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-97179 | A security vulnerability has been detected in O2OA up to 9.5.3/10.0.2. T…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel TTP ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick