/ / Wie kann ich schöne Suppe auf mehreren Seiten gleichzeitig verwenden? - beautifulsoup, Anfrage

Wie kann ich schöne Suppe auf mehreren Seiten gleichzeitig verwenden? - beautifulsoup, Anfrage

Ich benutze schöne Suppe, um eine Website zu kratzen. Es hat Seiten von Daten, die ich zusammensummieren möchte. Es dauert jedoch etwa 2 Sekunden pro Seite, es Seite für Seite mit einer schönen Suppe zu machen, und so dauert es fast einen Tag, um die Tausenden von Seiten zu machen, die ich möchte. Ein Großteil der Zeit wird nur damit verbracht, auf die URL-Anfrage zu warten, also denke ich, dass ich das tun könnte, indem ich die Aufgabe trennen und einhundert Python-Skripte gleichzeitig ausführen würde. Aber gibt es eine Möglichkeit, dies in einem Python-Skript zu tun?

Antworten:

1 für die Antwort № 1

Sie könnten mehrere Threads mit verwendenMultithreading.Pool, aber wahrscheinlich nicht Hunderte, wenn Sie einen Supercomputer haben. Die Anzahl der logischen Prozessoren auf dem Computer, auf dem der Code ausgeführt wird, ist wahrscheinlich die optimale Anzahl der zu verwendenden Threads. Es gibt jedoch zwei Dinge zu beachten:

  1. Die Verzögerung beim Warten auf die URL-Anforderung wird durch einen Netzwerkengpass verursacht, nicht durch langsamen Code in Ihrem Programm. Mehr Threads verbessern möglicherweise nicht die Gesamtgeschwindigkeit, weil mehr Threads gibt dir keine schnellere Internetverbindung. Vielleicht sind zwei oder drei Threads schneller als eins, aber es gibt eine Grenze, ab der Ihre Internetgeschwindigkeit zum Schwachpunkt der Geschwindigkeit wird.
  2. Wenn auf dem Server, von dem Sie scrappen, mehrere Anfragen pro Sekunde gesendet werden, Sie können auf die schwarze Liste gesetzt werden, um zu viel Ladung zu verursachen. Es ist in der Regel eine gute Übung, wenn Sie den Server, von dem Sie herunterladen, höflich sind, das heißt, es ist eine schlechte Idee, den Server mit mehreren Anfragen in schneller Folge zu spammen.