Mirki, próbuję napisać w C++ program, który będzie automatycznie pobierał dane ze stron internetowych (docelowo ebay). Z którą bym się nie połączył, dostaję błąd 400 - Bad Request Error. Moje zapytanie wygląda tak: GET / HTTP/1.1\n\n Co trzeba wysłać, żeby to jakkolwiek działało? Pytanie może głupie, ale jeżeli chodzi o zagadnienia związane z siecią jestem kompletnie zielony ( ͡°ʖ̯͡°) #programowanie #siecikomputerowe #sieci #cpp
@6502: Robisz ręcznie zapytanie HTTP? Moim zdaniem najlepiej użyć liba https://github.com/mrtazz/restclient-cpp Zdecydowanie prościej coś takiego idzie napisać w python/nodejs/golang niż w C++. ;)
@6502: $ echo "GET / HTTP/1.1"$'\r\n'"Host: www.ebay.com"$'\r\n\r\n' | nc ebay.com 80 działa cacy (no, z wyjątkiem konieczności ogarnięcia TLSa). HTTP/1.0 bez nagłówka hosta też.
@Aldor: @novopsico: Tak, robię ręcznie ( ͡°͜ʖ͡°) Dwa dni się męczyłem z ogarnięciem jakiejkolwiek biblioteki i mam dosyć. W tej chwili program łączy się z serwerem, więc jest jakikolwiek postęp.
@6502: Swoją drogą polecam scrapy do takiego rodzaju zabawy, masz sporo wbudowanych rzeczy - od obsługi różnych customizacji requestów, przez różne narzędzia do wyskrobywania danych (selektory css, xpath), sam mechanizm spidera (ogarnianie redirectów, błędów, ograniczenia zakresu, kolejkowanie, rozproszenie na wiele procesów) no i narzędzia do zrzutu danych (csv, json, xml, cokolwiek). No i w ciul pluginów, np do tych rotating proxies wspomnianych wyżej.
GET / HTTP/1.1\n\n
Co trzeba wysłać, żeby to jakkolwiek działało? Pytanie może głupie, ale jeżeli chodzi o zagadnienia związane z siecią jestem kompletnie zielony ( ͡° ʖ̯ ͡°)
#programowanie #siecikomputerowe #sieci #cpp
$ echo "GET / HTTP/1.1"$'\r\n'"Host: www.ebay.com"$'\r\n\r\n' | nc ebay.com 80działa cacy (no, z wyjątkiem konieczności ogarnięcia TLSa). HTTP/1.0 bez nagłówka hosta też.WSAStartup->Success
Press any key to continue . . .
socket->Success
Press any key to continue .
@kao3991: Tak myślałem, że zaraz się znajdzie jakiś mirek, który napisze, że C++ jest fe xD
$ echo $'GET / HTTP/1.1\r\nHost: www.ebay.com\r\n\r\n' | ncat --ssl www.ebay.com 443========
"GET / HTTP/1.1\r\nHost: www.mojastrona.pl\r\n\r\n"
nie chcę podawać dokładnego adresu, bo jeszcze mnie ktoś wystalkuje
@6502: nie jest fe, ale to trochę dziwny wybór do robienia takich rzeczy i musisz zapewne wynajdywać sporo kół od nowa.