Urlopen vs Webclient

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#

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

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))
0

url = ''costam" ???

0

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

44
import requests
requests.get/post(url, headers)
43

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

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.

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1