Próbuję skrobać dane na stronach z API za pomocą funkcji getURL pakietu RCurl w R. Mój problem polega na tym, że nie mogę replikować odpowiedzi, że Pojawi się, gdy otworzę URL w przeglądarce Chrome, gdy zgłoszę żądanie z użyciem R. Zasadniczo, gdy otworzę stronę interfejsu API (adres URL poniżej) w Chrome działa dobrze, ale jeśli poproszę o to przy użyciu getURL w R (lub w trybie incognito w Chrome) Otrzymuję odpowiedź "500 Wewnętrzny błąd serwera", a nie ładny JSON, którego szukam."RCurl" [R] pakiet getURL błąd strony podczas skrobania API
URL/API w pytaniu: http://www.bluenile.com/api/public/loose-diamond/diamond-details/panel?country=USA¤cy=USD&language=en-us&productSet=BN&sku=LD04077082
tu jest moje (nie), wniosek w [R].
test2 <- fromJSON(getURL("http://www.bluenile.com/api/public/loose-diamond/diamond-details/panel?country=USA¤cy=USD&language=en-us&productSet=BN&sku=LD04077082", ssl.verifypeer = FALSE, useragent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36"))
moich badań do tej pory Najpierw spojrzał na tym wcześniejszym pytaniem na stosie i dodał w moim UserAgent do wniosku (nie udało się rozwiązać problemu, ale nadal może być konieczne): ViralHeat API issues with getURL() command in RCurl package
Następny Spojrzałem na tego pomocnego postu, który prowadzi mój uzasadnienie: R Disparity between browser and GET/getURL
moich pomysłów o rozwiązanie Nie jest to moja dziedzina wiedzy, ale domyślam się, że w żądaniu brakuje pliku cookie potrzebnego do wypełnienia wniosku (stąd dlaczego nie działa on w mojej przeglądarce w trybie incognito). I w porównaniu do żądania i odpowiedzi z udanej prośba o nieudanej żądanie:
Udane żądanie:
Nieudany żądanie:
ktoś ma jakieś pomysły? Czy powinienem spróbować użyć pakietu RSelenium
, który został zaproponowany przez MrFlicka w drugim poście, który napisałem.
niesamowite. Próbowałem pracować z cookiejar, ale to nic nie zmieniło. Najpierw musiałeś odwiedzić ich pierwszą stronę. Sprytny. Skąd wiedziałeś, że tak było? – stanekam
Fakt, że Chrome incognito zawiódł, skłonił mnie do spojrzenia na stronę docelową i na to, co zostało tam ustawione. – jdharrison
Bravo, działa idealnie! Imponujące rozwiązywanie problemów i zrozumienie. – Tom