Yahoo Finance hat ihre Website aktualisiert. Ich hatte ein lxml / etree-Skript, mit dem die Analystenempfehlungen extrahiert wurden. Jetzt aber sind die Analystenempfehlungen da, aber nur als Grafik. Sie können ein Beispiel auf dieser Seite sehen. Das Diagramm mit der Bezeichnung Recommendation Trends in der rechten Spalte zeigt die Anzahl der Analystenberichte, die starkes Kaufen, Kaufen, Halten, Underperform und Verkaufen zeigen.
Meine Vermutung ist, dass Yahoo in der nächsten Zeit ein paar Anpassungen an der Seite vornehmen wird, aber ich habe mich gefragt, ob solche Daten in irgendeiner vernünftigen Weise extrahierbar sind?
Ich habe die Quelle so verstanden:
%Vor%und dann finden Sie die Daten im HTML-Baum. Aber offensichtlich ist das jetzt unmöglich.
Da Kommentare sagen, dass sie zu ReactJS gewechselt sind, ist lxml
nicht mehr auf dem Punkt, da auf der HTML-Seite keine Daten vorhanden sind. Jetzt müssen Sie sich umsehen und den Endpunkt finden, an den sie die Daten ziehen. Im Falle von Empfehlung Trends ist es da.
Die Ausgabe sieht so aus.
%Vor%Was ich getan habe, war grob:
/* -- Data -- */
beginnt) Die Seite ist ziemlich dynamisch und beinhaltet eine Menge Javascript in einem Browser. Um dem Ratschlag von @ Padraic zum Wechsel zu selenium
zu folgen, hier ein vollständiger Beispiel-Arbeitscode, der einen Monat Trendwörterbuch am Ende. Die Werte jedes Balkens werden als Proportionen der Balkenhöhen berechnet:
Drucke:
%Vor% Die total
-Werte sind Beschriftungen, die Sie oberhalb jeder Leiste sehen.
Ich hoffe, das wäre zumindest ein guter Anfang für Sie. Lassen Sie es mich wissen, wenn Sie möchten, dass ich einen Teil des Codes ausführe oder zusätzliche Informationen benötige.
Tags und Links python python-3.x web-scraping lxml