Skip to content

Instantly share code, notes, and snippets.

@ElectricCoffee
Last active January 9, 2025 10:07
Show Gist options
  • Save ElectricCoffee/1ceaecd7c4922179a981708664313634 to your computer and use it in GitHub Desktop.
Save ElectricCoffee/1ceaecd7c4922179a981708664313634 to your computer and use it in GitHub Desktop.
A simple web-scraper to get train companies older than a certain year off of danskejernbaner.dk
const JSDOM = require("jsdom").JSDOM;
const fs = require("node:fs");
async function getDom(url) {
const response = await fetch(url);
if (!response.ok) {
console.error("Response not OK, aborting");
return;
}
const result = await response.text();
return new JSDOM(result);
}
async function getData() {
const dom = await getDom(
"https://danskejernbaner.dk/vis.ejendomsmaerker.oversigt.php"
);
const links = [
...dom.window.document.querySelectorAll("table>tbody>tr>td:nth-child(1)>a"),
].map((x) => ({
abbreviation: x.innerHTML,
link: "https://danskejernbaner.dk/" + x.getAttribute("href"),
}));
const result = [];
for (const link of links) {
const res = await getDom(link.link);
const text = res.window.document.querySelector(".text-justify-wide");
const matches = text.innerHTML.matchAll(/(\d{4})[^-]/g);
const years = [...matches].map((x) => +x[1]);
if (years[0] <= 1885) {
console.log(`${link.abbreviation}: ${years}`);
result.push({
...link,
years,
});
}
}
return result;
}
getData().then((obj) => {
fs.writeFile(
"~/Desktop/trainScraper/output.json",
JSON.stringify(obj, null, 2),
(err) => {
if (err) {
console.error(err);
} else {
console.log(
`${obj.length} companies found. File successfully written!`
);
}
}
);
});
[
{
"abbreviation": "ABB Scandia",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=186&content=ABB-Scandia-ABB-Scandia",
"years": [1869, 1876, 1914, 1929, 1930, 1980, 1996, 2001]
},
{
"abbreviation": "D.d.S.",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=166&content=De-Danske-Sukkerfabrikker-A/S-DdS",
"years": [
1872, 1657, 1872, 1878, 1882, 1884, 1898, 1903, 1910, 1934, 1874, 1881,
1897, 1900, 1911, 1938, 1938, 1937, 1938, 1937, 1937, 1942, 1920, 1950,
1989, 2009
]
},
{
"abbreviation": "DJDS",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=150&content=Det-Danske-Jernbanedriftsselskab-DJDS",
"years": [1862, 1867, 1874, 1880]
},
{
"abbreviation": "DSB",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=14&content=Danske-Statsbaner-DSB",
"years": [1847, 1856, 1862, 1865, 1867, 1880]
},
{
"abbreviation": "ETJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=15&content=Ebeltoft-Trustrup-Jernbane-ETJ",
"years": [1874, 1876, 1894, 1898]
},
{
"abbreviation": "FHJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=17&content=Frederiksv%C3%A6rk-Hundested-Jernbane-senere-HFHJ-FHJ",
"years": [1881, 1894, 1895, 1897, 1927, 1933, 1897, 1916, 1943, 2001, 2015]
},
{
"abbreviation": "FJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=18&content=Fakse-Jernbane-FJ",
"years": [1864, 1977, 1977, 1978, 2005, 1874, 1907, 1914, 1927, 1970]
},
{
"abbreviation": "GDS",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=21&content=Gribskovbanens-Driftsselskab-GDS",
"years": [
1873, 1879, 1879, 1880, 1880, 1894, 1896, 1896, 1894, 1897, 1908, 1918,
1918, 1924, 1924
]
},
{
"abbreviation": "GJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=22&content=Gjedser-Jernbane-GJ",
"years": [
1884, 1966, 1886, 1893, 1966, 1883, 1884, 1886, 1886, 1872, 1886, 1886,
1892, 1888, 1887, 1929, 1886, 1903, 1893, 1966
]
},
{
"abbreviation": "HHJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=37&content=Hads-Herreds-Jernbane-HHJ",
"years": [
1876, 1876, 1882, 1882, 1884, 1882, 1884, 1884, 1888, 1977, 1977, 2001,
2012, 2016, 2018, 2019, 2019
]
},
{
"abbreviation": "HJJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=33&content=Horsens-Juelsminde-Jernbane-HJJ",
"years": [1854, 1870, 1884, 1933, 1957, 1958]
},
{
"abbreviation": "HTJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=43&content=H%C3%B8ng-T%C3%B8ll%C3%B8se-Jernbane-HTJ",
"years": [
1875, 1894, 1900, 1901, 1971, 1997, 2003, 1894, 1894, 1901, 1971, 1997,
2003
]
},
{
"abbreviation": "JFJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=46&content=Jydsk-Fyenske-Jernbaner-JFJ",
"years": [
1862, 1867, 1874, 1862, 1863, 1864, 1865, 1865, 1866, 1866, 1866, 1868,
1869, 1860, 1861, 1876, 1866, 1867, 1867, 1880, 1866, 1867, 1885, 1885,
1892
]
},
{
"abbreviation": "KHB",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=50&content=Kagerup-Helsinge-Banen-senere-GDS-KHB",
"years": [1880, 1897, 1934]
},
{
"abbreviation": "KRB",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=51&content=K%C3%B8ge-Ringsted-Jernbane-KRB",
"years": [
1859, 1913, 1915, 1934, 1960, 1963, 1917, 1963, 1894, 1908, 1913, 1915,
1934, 1957, 1937, 1934, 1936, 1954, 1963
]
},
{
"abbreviation": "KRJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=52&content=K%C3%B8ge-Ringsted-Jernbane-senere-KRB-KRJ",
"years": [
1859, 1913, 1915, 1934, 1960, 1963, 1917, 1963, 1894, 1908, 1915, 1917,
1934, 1957, 1983, 1934, 1923, 1930, 1937, 1957, 1963, 1963
]
},
{
"abbreviation": "KSB",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=54&content=K%C3%B8benhavn-Slangerup-Banen-KSB",
"years": [1878, 1904, 1906, 1906, 1929, 1948, 1954, 1950, 1960, 1960, 1977]
},
{
"abbreviation": "LFJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=56&content=Lolland-Falsterske-Jernbane-LFJ",
"years": [1865, 1866, 1867, 1867, 1869, 1872, 1872, 1875, 1894, 1912]
},
{
"abbreviation": "LFJS",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=57&content=Lolland-Falsterske-Jernbaneselskab-LFJS",
"years": [
1873, 1873, 1874, 1912, 1873, 1879, 1886, 1890, 1893, 1869, 1874, 1954,
1915, 1967, 1941, 1953, 1963, 1989, 1954, 1967
]
},
{
"abbreviation": "LJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=58&content=Lollandsbanen-A/S-LJ",
"years": [1865, 1873, 1990, 1990, 1993, 1982, 1996, 1920, 1954, 2009, 2015]
},
{
"abbreviation": "MBJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=62&content=Maribo-Bandholm-Jernbane-MBJ",
"years": [
1869, 1869, 1842, 1869, 1869, 1874, 1879, 1952, 1999, 1962, 1869, 1972,
1984, 1999, 2012, 2018
]
},
{
"abbreviation": "Museumsbanen Maribo-Bandholm",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=152&content=Museumsbanen-Maribo-Bandholm-Museumsbanen-Maribo-Bandholm",
"years": [1842, 1868, 1869, 1952, 1962, 1972, 1984, 1925, 1962]
},
{
"abbreviation": "NFJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=65&content=Nordfynske-Jernbane-NFJ",
"years": [1881, 1881, 1881, 1883, 1889, 1910, 1962, 1943, 1957, 1962]
},
{
"abbreviation": "PNJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=77&content=Pr%C3%A6st%C3%B8-N%C3%A6stved-Jernbane-senere-NMPB-PNJ",
"years": [1867, 1894, 1867, 1894, 1908, 1908, 1946, 1950, 1961, 1961]
},
{
"abbreviation": "Preußische Staatseisenbahn",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=145&content=Preußische-Staatseisenbahn-Preußische-Staatseisenbahn",
"years": [1864, 1920, 1864, 1864, 1866, 1864, 1920, 1920, 1920, 1920]
},
{
"abbreviation": "RFB",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=79&content=Ringe-Faaborg-Banen-RFB",
"years": [
1879, 1949, 1880, 1882, 1882, 1890, 1897, 1894, 1896, 1897, 1929, 1920,
1931, 1932, 1949, 1962, 1987, 1988, 1992, 2009, 2011, 2012
]
},
{
"abbreviation": "RNB",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=84&content=Ringe-Nyborg-Banen-RNB",
"years": [
1878, 1894, 1879, 1880, 1881, 1882, 1882, 1882, 1890, 1891, 1894, 1896,
1897, 1897, 1897, 1897, 1900, 1922, 1926, 1931, 1930, 1937, 1939, 1949,
1955, 1962
]
},
{
"abbreviation": "RNJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=85&content=R%C3%B8nne-Neks%C3%B8-Jernbane-senere-DBJ-RNJ",
"years": [1875, 1894, 1897, 1900, 1913, 1901, 1935, 1952, 1968]
},
{
"abbreviation": "SB",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=89&content=Skagensbanen-SB",
"years": [
1880, 1889, 1890, 1924, 1929, 1955, 1933, 1922, 1921, 1930, 1935, 1950,
1960, 1960, 1968, 1969, 1991, 2001, 2017
]
},
{
"abbreviation": "SFJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=91&content=Sydfyenske-Jernbaner-SFJ",
"years": [
1874, 1874, 1882, 1897, 1874, 1882, 1897, 1906, 1916, 1949, 1949, 1912,
1949
]
},
{
"abbreviation": "SHJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=92&content=Silkeborg-Herning-Jernbane-senere-JFJ-SHJ",
"years": [1873, 1875, 1877, 1879, 1879, 2003, 1879]
},
{
"abbreviation": "SJK",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=167&content=Midt-og-Vestjyllands-Jernbanemuseum-SJK",
"years": [1865, 1960, 1987]
},
{
"abbreviation": "SJS",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=148&content=Det-Sj%C3%A6llandske-Jernbaneselskab-SJS",
"years": [
1847, 1844, 1856, 1844, 1911, 1847, 1851, 1854, 1856, 1860, 1863, 1864,
1870, 1874, 1879, 1880, 1892, 1880, 1847, 1856, 1863, 1870, 1874, 1879,
1867, 1880, 1846, 1871, 1880, 1885, 1847, 1880
]
},
{
"abbreviation": "TBL",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=187&content=T%C3%B8nder-Bank-Leasing-TBL",
"years": [1869, 2012, 1869, 2001, 1110, 1122, 1124, 1134, 2012, 2012, 2012]
},
{
"abbreviation": "TFJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=97&content=Thisted-Fjerritslev-Jernbane-TFJ",
"years": [
1882, 1894, 1900, 1900, 1902, 1904, 1923, 1931, 1905, 1920, 1926, 1936,
1943, 1969, 1923, 1928, 1936, 1948, 1883, 1915, 1883, 1923, 1883, 1923,
1883, 1928, 1916, 1954, 1916, 1935, 1919, 1965, 1925, 1964, 1950, 1960,
1969
]
},
{
"abbreviation": "VaGJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=99&content=Varde-Grindsted-Jernbane-%C3%A6ndret-til-VGJ-i-1957-VaGJ",
"years": [
1864, 1919, 1864, 1913, 1915, 1916, 1919, 1864, 1919, 1919, 1957, 1960
]
},
{
"abbreviation": "VGJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=100&content=Vejle-Give-Jernbane-%C3%A6ndret-til-DSB-i-1912-VGJ",
"years": [
1880, 1912, 1914, 1882, 1889, 1890, 1892, 1894, 1897, 1907, 1912, 1908,
1911, 1914, 1912, 1914
]
},
{
"abbreviation": "VLJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=102&content=Vemb-Lemvig-Jernbane-VLJ",
"years": [1879, 1874, 1879, 1892, 1892, 1904, 1921, 1921]
},
{
"abbreviation": "ØJJ",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=109&content=%C3%98stjydske-Jernbane-%C3%98JJ",
"years": [
1861, 1862, 1873, 1874, 1876, 1875, 1877, 1878, 1879, 1878, 1882, 1881,
1881, 2017
]
},
{
"abbreviation": "ØSJS",
"link": "https://danskejernbaner.dk/vis.jernbaneselskab.php?JERNBANESELSKAB_ID=110&content=%C3%98stsj%C3%A6llandske-Jernbaneselskab-%C3%98SJS",
"years": [
1864, 1870, 1875, 1878, 1879, 1880, 1977, 1982, 1880, 1924, 1928, 1952,
1972, 1952, 1974, 1977, 1980, 2000, 2001, 2001, 2002, 2009, 2015
]
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment