Запросите веб-страницу, используя python (ошибка: имя хоста запроса неверно) - PullRequest
0 голосов
/ 01 мая 2020

Слушайте, это мой JavaScript код, с помощью которого я мог получить доступ к ответу со страницы

let host = "<host-url>",
    frompath= "<url of main page from which request is initiated>",
    topath = "<url of the response page>.aspx";
    history.pushState({page: 1}, "title", host+frompath)

    xhttp=new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
    text = xhttp.responseText;
    document.write(text);
    }
    };
    xhttp.open("GET",host+topath, true);
    xhttp.send();

Тот же скрипт, который я написал в python

import requests

host = "<host-url>"
frompath= "<url of main page from which request is initiated>"
topath = "<url of the response page>.aspx"


headers = {
        'Host':host,
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36',
        'Referer':host,
        'Origin':host+frompath
}

s = requests.Session()

response = s.post(host+topath,headers=headers)

print(response.text)

Этот код работает хорошо, но в ответ я получил страницу ошибки со следующим содержанием:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>

В JavaScript Я не получал эту ошибку, но в python Я получаю ее ....

Пожалуйста, помогите мне с этим ...

1 Ответ

0 голосов
/ 01 мая 2020

Я исправил эту проблему, заменив

s = requests.Session() response = s.post(host+topath,headers=headers) 

на

s=requests.get(host+topath,headers=headers, proxies={"http": host+frompath,
"https": host+frompath  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...