meeshanya
@meeshanya
кодокот

Почему не находит страницу запросом requests, но находит с cURL и Go?

выполняю запрос к странице в python при помощи requests - сервер отвечает страницей с заголоком "страница не найдена"
тот же самый но cURL - все отлично
попробовал GO - тоже получаю нужные данные, причем даже если не отправляю headers и coockie
пример url
на питоне:
import requests 
import coockie

main_url = coockie.host
def main():
     r = requests.get(main_url, headers=coockie.headers, cookies=coockie.cookies)
     return bs(r.text ,'lxml')

на Го:
package main

import (
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	client := &http.Client{}
	req, err := http.NewRequest("GET", "https://ks-rus.com/catalog/zadvizhki_shibernye/", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:86.0) Gecko/20100101 Firefox/86.0")
	req.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
	req.Header.Set("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3")
	req.Header.Set("Connection", "keep-alive")
	req.Header.Set("Referer", "https://ks-rus.com/")
	req.Header.Set("Upgrade-Insecure-Requests", "1")
	req.Header.Set("TE", "Trailers")
	req.Header.Set("Cookie", "BITRIX_SM_SALE_UID=многабукав")
	resp, err := client.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	bodyText, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%s\n", bodyText)
}

cURL
curl 'https://ks-rus.com/catalog/zadvizhki_shibernye/' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:86.0) Gecko/20100101 Firefox/86.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'Connection: keep-alive' -H 'Referer: https://ks-rus.com/' -H 'Cookie: BITRIX_SM_SALE_UID=многабукав' -H 'Upgrade-Insecure-Requests: 1' -H 'TE: Trailers'

есть подозрение что это все из-за того что requests https не умеет
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix
yellow
requests https не умеет

а?

Даже без заголовков и куков получает точно такой же код, как и в браузере.

spoiler
cookie, не coockie
Ответ написан
linuxoid6_9
@linuxoid6_9
Devops engineer
User agent пропиши для python как для остальных. На сервере скорее всего правило запрещающее для всяких ботов запросы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы