Web Scraping komplette Domain

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
has
User
Beiträge: 3
Registriert: Montag 11. Mai 2020, 11:54

Hallo,

mein Script durchsucht Webseiten auf bestimmte Wörter. Ich nutze requests, beautiful soup und re. Soweit so gut.

Wie bekomme ich es hin, dass nicht nur die URL, die ich einlese/eintrage, z.B. www. python-forum.de, durchsucht wird, sondern auch alle mit dieser Domain verbundenen Webseiten, also alle Unter-URLs?

Ich habe bereits viel recherchiert, aber nichts brauchbares gefunden. :(

Danke und VG
HAS
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Alle links einfach wieder dem crawler vorwerfen. Oder einfach wget benutzen, das kann mirroring, und das Resultat dann auf dateiebene durchforsten.
has
User
Beiträge: 3
Registriert: Montag 11. Mai 2020, 11:54

Danke, den ersten Satz verstehe ich nicht. Wie soll ich die Links wieder vorworfen?

Ich habe mir beispielhaft bereits mit WINHTT eine komplette Webseite gespiegelt, hatte aber die Hoffnung, dass es einfacher geht, als alle Links einzeln im Script aufzurufen, sondern direkt im Code eine, sagen wir mal, "Durchschau" der Webseite zu programmieren.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich habe schon verstanden, was du willst. Und einfacher als alle links abzurufen gehts nicht. Das ist genau das, was man machen muss.

Und wenn du eine Webseite mit BS verarbeitet, dann kannst du doch einfach alle href Attribute und Ähnliches abfragen, und die dann wieder mit requests Laden, und weiter geht das Spiel. Dabei zu beachten:

- links die von der Seite wegführen ignorieren.
- relative links zur aktuellen URL auflösen.
- schon besuchte links ignorieren.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Wenn du ernsthaft Scraping betreiben möchtest lass den requests und BeautifulSoup Kram sein, wird zwar häufig hier im Forum erwähnt zwingt dich aber dazu erstmal das Rad neu zu erfinden. Das ist vollkommen unsinnig und Zeitverschwendung.

Es gibt Frameworks für sowas wie Scrapy die kümmern sich um diese Grundlegenden Dinge, z.B. folgen von Links einschliesslich der von __deets__ genannten Punkte und weiteren Dingen und du kannst dich dann aufs wesentliche konzentrieren.
Antworten