Я использую фантомы для имитации взаимодействия человека на веб-сайте, чтобы получить оттуда некоторые данные.На этой странице есть форма -> Я заполнил форму фантомами -> Я нажимаю кнопку отправки.Процесс отправки выглядит следующим образом: Запрос POST инициируется, этот запрос перенаправляет на запрос GET с прикрепленными к нему пустыми заголовками.Но когда я тестировал вручную в браузере, у второго запроса (GET) есть заголовки.
Мы не получили желаемого ответа от запроса GET, потому что у него нет заголовков: User-Agent, Cookie и т. Д.
Я пытался добавить заголовки двумя способами, но безуспешно:
1.
page.onResourceRequested = function (request, networkRequest) {
if(request.id == '28' && request.headers.length == 0) {
var cookies = '';
for (var i = 0; i<page.cookies.length; i++) {
cookies += page.cookies[i].name + "=" + page.cookies[i].value + '; ';
}
request.headers = [
{
"name": "User-Agent",
"value": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36"
},
{
"name": "Accept",
"value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"
},
{
"name": "Cache-Control",
"value": "max-age=0"
},
{
"name": "Connection",
"value": "keep-alive"
},
{
"name": "Content-Type",
"value": "application/x-www-form-urlencoded"
},
{
"name": "Cookie",
"value": cookies
}
];
}
};
2.
page.onResourceRequested = function (request, networkRequest) {
if(request.id == '28' && request.headers.length == 0) {
var cookies = '';
for (var i = 0; i<page.cookies.length; i++) {
cookies += page.cookies[i].name + "=" + page.cookies[i].value + '; ';
}
networkRequest.setHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36");
networkRequest.setHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
networkRequest.setHeader("Cache-Control", "max-age=0");
networkRequest.setHeader("Connection", "keep-alive");
networkRequest.setHeader("Content-Type", "Content-Type");
networkRequest.setHeader("Cookie", cookies);
}
};
Я напечаталзапрос выглядит так:
{
"headers": [],
"id": 28,
"method": "GET",
"time": "2019-02-07T08:11:59.429Z",
"url": "[THE GET URL]"
}
Я использую phantomjs 2.5.0 (это единственная библиотека, которая работает для меня).
Как я могу успешно добавить заголовки и файлы cookie дляэтот запрос GET?
Заранее спасибо.