Miniobs rund um Waldbröl (Loser-Documentation)

Eine kleine, verwirrte Dokumentation


Eine Ausgabe wie in der folgenden HTML-Datei zu sehen:

html-Datei

... erzeuge ich wie folgt:


Julia-REPL Version 1.2.0 (2019-08-20)


using Cascadia
using Gumbo
using HTTP
using DataFrames
using CSV


# Variablen für Links

pagelinks = []
links = DataFrame(Link = String[], Titel = Link = String[], Beschreibung = String[])

url = "https://www.ebay-kleinanzeigen.de/s-heimarbeit-mini-nebenjobs/51545/c107l1538r20"
res = HTTP.get(url);
body = String(res.body);
html = parsehtml(body);


# Seiten-Links einlesen und in 'pagelinks' schreiben

push!(pagelinks,url)

n = eachmatch(sel"""[class="pagination-page"]""", html.root)

for i in 1:length(n)
    if occursin(r"href",string(n[i])) == true
        matchy = string(n[i])
        # println("Fund! ",matchy)
        suburl = replace(string(n[i]),r".*href=\"(.*)\"title.*" => s"\1")
        println(suburl)
        url = string("https://www.ebay-kleinanzeigen.de",suburl)
        println()
        println(url)
        println()
        push!(pagelinks,url)
    end
end


# Einzellinks einlesen und in 'links' schreiben

for i in 1:length(pagelinks)
    url = pagelinks[i]
    println(url)
    res = HTTP.get(url);
    body = String(res.body);
    html = parsehtml(body);
    m = eachmatch(sel"""[class="ellipsis"]""", html.root)
    for i in 1:length(m)
        if occursin(r".*",string(m[i])) == true
            matchy = string(m[i])
            println("Fund! ",matchy)
            text = replace(string(m[i]),r".*>(.*)</a>.*" => s"\1")
            suburl = replace(string(m[i]),r".*href=\"(.*)\">.*" => s"\1")
            suburl = string("https://www.ebay-kleinanzeigen.de",suburl)
            println()
            println(text)
            println(suburl)
            println()
            push!(links,[suburl text ""])
            # sleep(3)
        end
    end
    sleep(2)   
end


# Links auf Fehler checken

for i in 1:length(links[:,:Link])
    link = links[i,:Link]
    if occursin(r"[^a-zA-Z0-9_\-\/:\.]",link) == true
        println("Zeile: ", i," ::=> ERROR!!!!")
        println(link)
    end
end


# Beschreibungen in 'links' einfügen

for i in 1:length(links[:,:Link])
    sleep(2)
    link = links[i,:Link]
    println(link)
    res = HTTP.get(link);
    body = String(res.body);
    html = parsehtml(body);
    beschreibung = eachmatch(sel"""[id="viewad-description-text"]""", html.root)
    beschreibung = replace(string(beschreibung[1]),r".*viewad-description-text\"(.*)" => s"\1")
    links[i,:Beschreibung] = beschreibung
end



CSV.write("/home/heide/Dropbox/Julia-Einstieg/HTML-Scraping/minijobs-ebay.csv",links)


Jupyter-Notebook Python 3.7.3




#!/usr/bin/env python
# coding: utf-8


import pandas as pd
import re

links = pd.read_csv('/home/heide/Dropbox/Julia-Einstieg/HTML-Scraping/minijobs-ebay.csv')

head1 = '<!doctype html> <html lang="de">   <head>     <meta charset="utf-8">     <meta name="description" content="Minijobs rund um Waldbröl">     <meta name="keywords" content="example, html, head, meta">     <link rel="stylesheet" href="example.css">     <link rel="start" href="https://wiki.selfhtml.org/wiki/HTML" title="HTML-Dokumentation">     <title>Exemplarische Kopfdaten</title>   </head>   <body>\n     '
head2 = ' </body> </html>'

links_as_html = head1

for link, titel, beschreibung in links.itertuples(index=False):
    beschreibung = re.sub(r'^>[\s]+',r'',beschreibung)
    line = "<h1><a href=" + link + "\">" + titel + "</a></h1>\n<p><br><br>" + beschreibung + "</p><br>\n"   
    links_as_html = links_as_html + line
   
links_as_html = links_as_html + head2

html_file = open('/home/heide/Dropbox/Julia-Einstieg/HTML-Scraping/minijobs-ebay.html',"w")
html_file.write(links_as_html)
html_file.close()



Weitere (Folge-)* Maßnahmen


Die entstandene HTML-Datei lade ich mit meiner Software Jutoh2, erstelle ein neues E-Book, wobei ich Abschnitte mit Kennung <h1> und ein automatisches Inhaltsverzeichnis erzeugen lasse. Die Mobi-Datei speichere  ich auf meiner Festplatte, rufe Calibre auf, öffne die Datei in Calibre und sende sie an meinen Kindle-E-Book-Reader.

Liest sich gut. Das Ergebnis, das Mobi-E-Book. Besser als meine kleine, dumme Dokumentation hier (die ich aber hinterlegen muss, weil ich sonst bei all meinen  verschiedenen Arbeitsplätzen und unterschiedlichen Projekten den Faden verliere - den ich oft erst Wochen, wenn nicht gar Monate später wiederaufnehmen kann ;-)



* Leicht verdoppelmoppelt.**
** Aber nur ganz leicht.

Kommentare

Beliebte Posts aus diesem Blog

·

Es brennt.

Bye, bye Nord Stream 2!