#1  (Permalink
Alt 01.08.2020, 12:44
ghor ghor ist offline
Senior Mitglied
 
Registriert seit: 30.10.2006
Beiträge: 548
Provider: 1&1
Beitrag Script für Verkaufs- und Verschenke-Anzeigen auf ebay-Kleinanzeigen

Habe mir ein Script gebastelt, was von einer Verkaufs- oder Verschenke-Anzeige bei ebay-kleinanzeigen die Bilder runterlädt (als 1.jpg 2.jpg usw.) und die Infos der Anzeige wie Preis und Beschreibung in eine Text-Datei schreibt,

die dann z.B. so aussieht:
Zitat:
Kategorie:
Kleinanzeigen_Marburg Auto,_Rad_&_Boot Fahrräder_&_Zubehör
-----------------------------------
Titel:
****** Fahrrad 28 Zoll ******
-----------------------------------
Preis:
***** 35 â<U+0082>¬ *****
-----------------------------------
Art:
* Art Damen
Text:
***** Beschreibung *****
Hallo
Verkaufe ein Fahrrad
Alles funktioniert einwandfrei
Sofort fahrbereit

35â<U+0082>¬ VB

***** Nachricht schreiben *****
-----------------------------------
Bilder: 3

Vielleicht hat ja jemand Verwendung dafür? Ist nichts dolles, nicht perfekt und kann man bestimmt noch besser machen, erfüllt aber seinen Zweck.

Umlaute und Euro-Zeichen sind falsch und muss man sich denken. Man benötigt die Pakete/Programme wget und html2text.


Hier das Script:

Zitat:
#!/bin/bash

rm *.jpg 2>/dev/null

wget -q -O test.html $1

html2text test.html > test.txt
echo "Kategorie: " > info.txt
grep "^Kleinanzeigen" test.txt >> info.txt
echo "-----------------------------------" >> info.txt
echo "Titel: " >> info.txt
grep "^\*\*\*\*\*\*" test.txt >> info.txt
echo "-----------------------------------" >> info.txt
echo "Preis: " >> info.txt
grep "^\*\*\*\*\* " test.txt | head -1 >> info.txt
echo "-----------------------------------" >> info.txt
echo "Art: " >> info.txt
grep " * Art " test.txt >> info.txt
echo "Text: " >> info.txt
grep -A 22 "^\*\*\*\*\* Be" test.txt |grep -B 100 "^\*.* Nach" >> info.txt

a=`cat test.html | grep "url.*_59" | cut -d"'" -f2`
n=1
for i in $a; do
wget -q -O $n.jpg $i
n=`expr $n + 1`
done

n=`expr $n - 1`
echo "-----------------------------------" >> info.txt
echo "Bilder: $n" >> info.txt

rm test.html test.txt

Ein Verzeichnis anlegen und reinwechseln. Dort das Script speichern z.B. als eka-dl.sh und ausführbar machen (chmod u+x eka-dl.sh)
Aufruf: ./eka-dl.sh <URL zur Anzeige>
z.B.: ./eka-dl.sh https://www.ebay-kleinanzeigen.de/s-...92151-217-4832
Im Verzeichnis sind danach die Bilder und eine info.txt mit den Infos.

Geändert von ghor (01.08.2020 um 12:58 Uhr)
Mit Zitat antworten
  #2  (Permalink
Alt 01.08.2020, 14:28
ghor ghor ist offline
Senior Mitglied
 
Registriert seit: 30.10.2006
Beiträge: 548
Provider: 1&1
Standard AW: Script für Verkaufs- und Verschenke-Anzeigen auf ebay-Kleinanzeigen

Mit dem Umlauten etc. klappt es auch, wenn man die Zeile mit html2text ändert in:
Code:
html2text -ascii test.html > test.txt
Und die mit "grep -A" besser ändern in:
Code:
grep -A 100 "^\*\*\*\*\* Be" test.txt |grep -B 100 "^\*.* Nach" >> info.txt
Mit Zitat antworten
  #3  (Permalink
Alt 03.08.2020, 10:18
ghor ghor ist offline
Senior Mitglied
 
Registriert seit: 30.10.2006
Beiträge: 548
Provider: 1&1
Standard AW: Script für Verkaufs- und Verschenke-Anzeigen auf ebay-Kleinanzeigen

Und hier mit Python3:
Code:
#!/usr/bin/env python3

import mechanicalsoup
import requests
import sys
import os

filelist = [ f for f in os.listdir(".") if f.endswith(".jpg") ]
for f in filelist:
    os.remove(os.path.join(".", f))


browser = mechanicalsoup.Browser(soup_config={'features': 'lxml'},user_agent='MyBot/0.1: mysite.example.com/bot_info')

if len(sys.argv) < 2:
    print("Parameter fehlt!")
    exit(1)

url = sys.argv[1]

page = browser.get(url)

if len(page.soup.find_all("div",class_="outcomemessage-warning")) > 0:
    print("Problem mit Anzeige")
    exit(1)

print("----------------------------------------------------")
print("Titel:")
print(page.soup.find(property="og:title").attrs['content'])
print("----------------------------------------------------")
print("Preis:")
a = page.soup.find(id="viewad-price")
if a == None:
    print("Kein Preis")
else:    
    print(a.text.strip())

print("----------------------------------------------------")
print("Bilder:")
i=1
for x in page.soup.find_all(id="viewad-image"):
    print(x.attrs['src'])
    lnk=x.attrs['src']
    with open(str(i)+".jpg","wb") as f:
        f.write(requests.get(lnk).content)
    i=i+1

print("----------------------------------------------------")
print("Kategorie:")
for x in page.soup.find_all(itemprop="title"):
    print(x.text.strip())

print("----------------------------------------------------")
print("Text:")
s=""
for x in page.soup.find(itemprop="description").contents:
    if isinstance(x, str):
        s+=x.strip()
    else:
        s+="\n"
print(s)

print("----------------------------------------------------")
print("Details:")
for x in page.soup.find_all("span",class_="addetailslist--detail--value"):
    print(x.text.strip())
print("----------------------------------------------------")
Man braucht MechanicalSoup: https://mechanicalsoup.readthedocs.i...l#installation
Infos werden nicht in Datei geschrieben, nur ausgegeben.
Mit Zitat antworten
 
Anzeige
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
auch die lokalen Anzeigenblätter + webAnzeigen schmerzen => KleinAnzeigen.ebay.de 1cm.de Newskommentare 0 18.09.2009 14:31
verkaufs formular Mib2001 Sonstiges 1 06.01.2003 17:30
Script für Kleinanzeigen gesucht Athlon Sonstiges 3 05.09.2001 07:34
Frage an die Kreativen: Wie verschenke ich am besten eine URL? Ehemalige Benutzer Small Talk 11 01.05.2001 20:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:19 Uhr.


Basiert auf vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.