3.0 KiB
Wir bieten einen allgemeinen Seitenparser an, der intelligent Artikellisten von Quellen abrufen kann. Für jede Artikel-URL wird zuerst versucht, gne
zur Analyse zu verwenden. Falls dies fehlschlägt, wird llm
als Alternative genutzt.
Diese Lösung ermöglicht das Scannen und Extrahieren von Informationen aus den meisten allgemeinen Nachrichtenquellen und Portalen.
Wir empfehlen jedoch dringend, benutzerdefinierte Parser für spezifische Quellen zu entwickeln, die auf Ihre tatsächlichen Geschäftsszenarien abgestimmt sind, um eine idealere und effizientere Erfassung zu erreichen.
Wir stellen auch einen speziellen Parser für WeChat-Artikel (mp.weixin.qq.com) bereit.
Falls Sie bereit sind, Ihre speziell entwickelten Parser für bestimmte Quellen zu diesem Code-Repository beizutragen, wären wir Ihnen sehr dankbar!
Entwicklungsspezifikationen für benutzerdefinierte Quellparser
Spezifikationen
Denken Sie daran: Es sollte eine asynchrone Funktion sein
- Der Parser sollte in der Lage sein, intelligent zwischen Artikel-Listen-Seiten und Artikel-Detailseiten zu unterscheiden.
- Die Eingabeparameter des Parsers sollten nur
url
undlogger
umfassen:url
ist die vollständige Adresse der Quelle (Typstr
).logger
ist das Protokollierungsobjekt (bitte konfigurieren Sie keinen separaten Logger für Ihren benutzerdefinierten Quellparser).
- Die Ausgabe des Parsers sollte
flag
undresult
umfassen, im Formattuple[int, Union[set, dict]]
:-
Wenn die
url
eine Artikellisten-Seite ist, gibtflag
1
zurück, undresult
gibt eine satz aller Artikel-URLs (set
) zurück. -
Wenn die
url
eine Artikelseite ist, gibtflag
11
zurück, undresult
gibt alle Artikeldetails (dict
) zurück, im folgenden Format:{'url': str, 'title': str, 'author': str, 'publish_time': str, 'content': str, 'abstract': str, 'images': [str]}
Hinweis:
title
undcontent
dürfen nicht leer sein.Hinweis: Das
publish_time
-Format muss"%Y%m%d"
(nur Datum, ohne-
) sein. Wenn der Scraper es nicht erfassen kann, verwenden Sie das aktuelle Datum. -
Wenn die Analyse fehlschlägt, gibt
flag
0
zurück, undresult
gibt ein leeres Wörterbuch{}
zurück.Der
pipeline
versucht andere Analysemethoden (falls vorhanden), wennflag
0 zurückgegeben wird. -
Wenn das Abrufen der Seite fehlschlägt (z. B. aufgrund von Netzwerkproblemen), gibt
flag
-7
zurück, undresult
gibt ein leeres Wörterbuch{}
zurück.Der
pipeline
wird im gleichen Prozess keine weiteren Versuche zur Analyse unternehmen, wennflag
-7 zurückgegeben wird.
-
Registrierung
Nach dem Schreiben Ihres Scrapers platzieren Sie das Scraper-Programm in diesem Ordner und registrieren den Scraper in scraper_map
in __init__.py
, wie folgt:
{'domain': 'Crawler-Funktionsname'}
Es wird empfohlen, urllib.parse zur Ermittlung der domain zu verwenden:
from urllib.parse import urlparse
parsed_url = urlparse("l'URL du site")
domain = parsed_url.netloc