Downloadfehler bei Versuch 1 (yahoo finance)

All drei UserAgents bringen Kurse in lokalem build:

Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0

EDIT:

@melita: Mit einfach nur Mozilla/5.0 (123456) kommen ebenfalls Kurse.

2 Likes
$ curl -si -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0' 'https://query1.finance.yahoo.com/v8/finance/chart/KHNZ.DE?lang=en-US&region=US&corsDomain=finance.yahoo.com' | grep HTTP
HTTP/2 429 

Mit einem relativ frischen Firefox/136.0 kackt curl ab, mit dem alten Firefox/25.0 nicht? Mehrfach getestet. Was macht yahoo denn da?

1 Like

Interessant. Ich habe es ebenfalls ausprobiert. Alleine Mozilla/5.0 (123456) bringt wieder Kurse. :upside_down_face: Soll ich eine Release bauen und wir schauen wie lange das funktioniert?

Das wundert mich irgendwie schon. Ich habe bei ein paar anderen Projekte geschaut die ebenfalls das Yahoo API nutzen. Ebenfalls seit ein paar Tagen 429er Fehler… Dort wird auf “TLS fingerprinting” verwiesen und “curl impersonate” verwendet.

Aber merkwürdig: wenn ich es mit dem UserAgent meines Browser versuche, kommen keine Kurse. Über den Browser aufgerufen geht es aber.

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:138.0) Gecko/20100101 Firefox/138.0

Also muss es doch noch an irgendetwas anderem liegen, oder nicht?

Das könnte daran liegen das die einen Abgleich mit User-Agent/TLS-Fingerprint-Paaren benutzen. Wenn man mit einem uralten oder gar völlig unbekannten UA ankommt → darf man anklopfen, wenn man mit einem bekannten UA und einem nicht dazu passendem/bekannten TLS-Fingerprint → dann nicht?

Schräg.

Kannst Du eine bauen die einen Random-UA erzeugt? Für jeden PP-User und bei jedem PP-Start anders, das könnte dann vielleicht länger halten?

2 Likes
.addUserAgent("Mozilla/5.0 (" + ThreadLocalRandom.current().nextInt(100000, 999999) + ")") //

liefert Kurse

3 Likes

Ich habe diesen “experimentellen Fix” mit Version 0.76.1 veröffentlicht (als Online Aktualisierung). Schauen wir mal…

6 Likes

Funktioniert jetzt wieder, danke!

Never tested that, but as a work around, you could just set the update provider in the security configuration to no updates. Then it will work.

Hi,
When I was trying to add a new new instrument security. it still be same error.

Wo kann ich den experimental fix denn dowloaden, um es auch zu probieren?

An sich weist Dich PP beim nächsten Start auf ein Update hin. Ansonsten kannst Du die Version auf Github laden. Ich bin gestern Abend nicht mehr dazugekommen auch die Links auf der Download Seite zu aktualisieren.

Super, danke! :clap:

Update eben heruntergeladen. Der Import der Kurse von YFinance funktioniert wieder. Danke. :grinning_face:

Hallo Andreas,

ich nutze JSON als Lieferant für die historischen Kurse. Darin habe ich die URL für die Yahoo API hinterlegt. Bei Kursabfragen via JSON wird als useragent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.3.1 Safari/605.1.15 genutzt (Funktion getUserAgent in der OnlineHelper Klasse). Mit diesem Useragent klappt die Kursabfrage bei Yahoo nicht.

Ist es möglich an dieser Stelle auch eine Anpassung zu machen?

Aktualisierung funktioniert. Der Fehler kommt aber leider immernoch wenn man versucht neue Wertpapiere anzulegen. Gibt es hierzu auch einen Workaround?

Ist schon bekannt und wird bestimmt mit einem der nächsten Updates angepasst.

Du kannst ein leeres Wertpapier anlegen und dann manuell konfigurieren. Siehe z.B. hier:

1 Like