Urlopen vs Webclient

Urlopen vs Webclient
MA
  • Rejestracja:około 17 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Poznań
0

Dwa niby takie same kodziki, ale w C# działa a w Pythonie dostaję 403.
Może ktoś się domyśla czemu tak. Nagłówki sprawdzałem i w pythonie są dobrze ustawiane.

C#

Kopiuj
var wc = new WebClient();
wc.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9");
wc.Headers.Add("Accept-Encoding", "gzip, deflate, br");
wc.Headers.Add("Accept-Language", "pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7");
wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36");
var ret = wc.DownloadData("costam");
var str = Encoding.UTF8.GetString(ret);

Python

Kopiuj
hdrs = {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    "Accept-Encoding": "gzip, deflate, br",
    "Accept-Language": "pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7",
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
}

url = ''costam"

response = urlopen(Request(url, headers=hdrs))
edytowany 3x, ostatnio: maciejmt
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:4 dni
0

url = ''costam" ???


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
MA
  • Rejestracja:około 17 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Poznań
0

to allegro listing więc nie chciałem się chwalić :)
np url = "https://allegro.pl/listing?string=karta"

_13th_Dragon
Ja o niepoprawnych cudzysłowach ...
MA
odpowiedź 403 nie byłaby z tym związana :)
ledi12
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:Wrocław
44
Kopiuj
import requests
requests.get/post(url, headers)

Robię http response status cody w martwych ciągach
edytowany 1x, ostatnio: ledi12
MA
też sprawdzałem. nie leci 403, ale pyta o JSa (a przy webcliencie nie...)
ledi12
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:Wrocław
43

Pod render stron z jsem to mi zawsze działało -> https://pypi.org/project/requests-html/


Robię http response status cody w martwych ciągach
MA
w każdym razie w tym przypadku nie idzie.. (a raczej jest blokada)
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:4 dni
1

Może sprawdź przez wireshark czy coś innego w ten deseń (na czas eksperymentu możesz chwilowo dać http:// owszem nie przejdzie ale zobaczysz co jest faktycznie wysyłane) jakie zapytanie naprawdę leci.
Bo chodzi o to że niektóre narzędzie samoczynnie dodają niektóre nagłówki.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon
S4
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:1268
0

Fiddlerem mozesz popatrzeć co tam leci w jedenym i drugim przypadku. Moim zdaniem to te biblioteki dodają jakies swoje headery. Ale 403 to jakby na jakimś logowaniu się to wywaliło.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.