@Losar

Почему не получается отправить post запрос requests python?

пытаюсь получить номера с генератора номеров через requests
код:
import requests
from requests.structures import CaseInsensitiveDict

url = "https://kalku.ru/generator-nomerov-telefona/"

headers = CaseInsensitiveDict()
headers["Content-Type"] = "application/json"

data = {"action":"rand_phone_num_generator","rand_phone_num_generator__count_code":"Авто","rand_phone_num_generator__city_code":"Авто","rand_phone_num_generator__digit_num":"10","rand_phone_num_generator__format":"elem3","rand_phone_num_generator__total":"10"}
resp = requests.post(url, data=data)
print(resp.text)

я получаю просто html сайта без сгенерированных номеров
  • Вопрос задан
  • 340 просмотров
Решения вопроса 1
@C0COK
1. что бросается в глаза - это другой URL: https://kalku.ru/wp-content/plugins/calc5530/short...
2. тут гораздо больше данных отправляется, чем вы делаете в своем запросе 60fd3fd723421539567923.jpeg
3. в заголовках не Json, а "content-type":"application/x-www-form-urlencoded; charset=UTF-8"
4. так же вы должны передать обязательный заголовок: x-requested-with: XMLHttpRequest

Так же вы должны понимать что сайты, дабы избежать использования автоматических запросов, могут делать множество защит, поэтому вы должны составлять свои запросы, как минимум идентично сниферу и проверять на работоспособность, на моей практике даже заголовок referer был важным.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы