• EN
    РУ

browser/set_cookie_for_url

set_cookie_for_url(url, name, cookie, expires="", domain="", path="", httpOnly=false, secure=false, session=false, sameSite="", priority=""); - задать (добавить) куки для заданного сайта.
Функция на вход принимает параметры:
  • url – адрес сайта.
  • name – имя кука или "" , если следующий параметр - несколько куков.
  • cookie – строка с куком или куками.
  • expires – максимальное время жизни cookie в формате метки даты-времени HTTP. Если не определён, cookie будет иметь время жизни сессионного cookie. Сессия окончена, когда клиент отключается, что приводит к удалению сессионных cookie в этот момент. Однако, многие браузеры имеют возможность, называемую восстановление сессии, которая сохраняет все ваши вкладки и затем возвращает их, когда вы в следующий раз запускаете браузер. Cookies будут также присутствовать, словно вы никогда не закрывали браузер. Когда устанавливается срок действия, время и дата устанавливаются не относительно сервера, а относительно клиента, на котором установлено cookie.
  • domain – хост, на который будут отправляться cookie. По умолчанию - хост текущего URL документа, не включая поддомены. В текущей спецификация начальная точка в имени хоста игнорируется (.example.com). Cookie будут отправляться также на поддомены указанного хоста. Указывать несколько хостов недопустимо.
  • path – путь, который должен существовать в запрошенном URL, иначе браузер не отправит заголовок Cookie.
    Пример: / - cookie будет отправляться со всеми запросами
    Пример: /docs/ - cookie будет отправляться с запросами к директории docs и её поддиректориям.
  • httpOnly – запрещает JavaScript доступ к cookie.
  • secure – cookie будет отправлен на сервер только с запросами c использованием SSL и протокола HTTPS. Cookie не будет дополнительно шифроваться, поэтому в нем не стоит хранить конфиденциальную информацию.
  • session – сессионные cookie(true), постоянные cookie(false).
  • sameSite – может принимать один из трех вариантов значения:
    • Strict: браузер отправляет cookie только для запросов к тому же сайту (то есть запросов, исходящих с того же сайта, который установил cookie). Если запрос исходит от URL-адреса, отличного от текущего, файлы cookie с атрибутом SameSite = Strict не отправляются.
    • Lax: файл cookie удерживается в межсайтовых подзапросах, таких как вызовы для загрузки изображений или фреймов, но отправляется, когда пользователь переходит по URL-адресу с внешнего сайта, например, переходя по ссылке.
    • None: браузер отправляет cookie как с межсайтовыми, так и с межсайтовыми запросами.

    Современные браузеры используют SameSite=Lax. Если необходима работа SameSite=None cookie должна быть установлена с атрибутом Secure.
  • priority – приоритет, может принимать один из трех вариантов значений:
    • -1 – низкий приоритет
    • 0 – средний приоритет
    • 1 – высокий приоритет


После отработки функция возвращает результат своей работы в робот:
  • true – успешно выполнили
  • false – выполнить не удалось




Пример использования set_cookie_for_url (PHP):

<?php $xhe_host = "127.0.0.1:7013";
 
// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
  $path="../../../Templates/init.php";
require($path);
 
// начало
echo "<hr><font color=blue>browser->".basename (__FILE__)."</font><hr>";
 
// 1 
echo "1. Перейдем на гугл : ";
echo $browser->navigate("http://www.google.com/","")."<br><br>";
 
// 2 
echo "2. Получим текущие куки гугла :";
echo $browser->get_cookie_for_url("http://www.google.com/","")."<br><br>";
 
// 3 
echo "3. Очистим текущие куки гугла. ";
$browser->clear_cookies("google.com",true,true);
 
// 4 
echo "<br><br>4. Получим текущие куки гугла - пустые : ";
echo $browser->get_cookie_for_url("http://www.google.com/","")."<br><br>";
 
// 5  
echo "5. Зададим (Добавим) куки к гуглу : ";
$cookie ="__utma=123272373.426502259.12244752769.12244752769.12424752775.2:__utmb=173272373.4.10.1244752775; __utmz=173272373.1244752783.2.3.utmccn=(organic)|utmcsr=google|utmctr=adsense.google.com|utmcmd=organic; __utmc=173272373; __utmv=173272373.ExistingPublisher; PREF=ID=1ab1131528cb1f1a:TM=1244752750:LM=1244752750:S=z8a6mTRmDHVImKOg; TZ=-180; GMAIL_RTT=62; SID=DQAAAG4AAACVKgLK1udE8zJUkHfj7lB1exGg0rTbtWPXOIWORMueVZoT77XyJNTUltfGPonIuKt7PTVUs5qF-UvkhHR5cXcsIynN04AL3f7YMObLoOP5wkyGK9n7zHlw89Px0s8foYkobyH8Z9wzAZ2-FpZ7s9I3";
echo $browser->set_cookie_for_url("http://www.google.com/","",$cookie)."<br><br>";
 
// 6 
echo "6. Получим текущие куки гугла (2 раза): <br><br>";
echo $browser->get_cookie_for_url("http://www.google.com/","")."<br><br>";
echo $browser->get_cookie()."<br><br>";
 
// конец
echo "<hr><br>";
 
// Quit
$app->quit();
?>

Пример использования set_cookie_for_url (C#):

#region using
 
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Threading;
 
using XHE;
using XHE.XHE_DOM;
using XHE.XHE_System;
using XHE.XHE_Window;
using XHE.XHE_Web;
 
#endregion
 
 class Program:XHEScript
 {
	  static void Main(string[] args)
	  {
			// init XHE
			server="127.0.0.1:7010";
			InitXHE();
 
			// начало
			echo("<hr><font color=blue>browser.set_cookie_for_url</font><hr>");
 
			// 1 шаг
			echo("1. Перейдем на гугл : ");
			echo(browser.navigate("http://www.google.com/")+"<br>");
 
			// 2 шаг
			echo("2. Получим текущие куки гугла : ");
			echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br>");
 
			// 3 шаг
			echo("3. Очистим текущие куки гугла. ");
			echo(browser.clear_cookies("google.com",true,true)+"<br>");
 
			// 4 шаг
			echo("4. Получим текущие куки гугла - пустые : ");
			echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br>");
 
			// 5 шаг 
			echo("5. Зададим (Добавим) куки к гуглу : ");
			string cookie ="__utma=123272373.426502259.12244752769.12244752769.12424752775.2:__utmb=173272373.4.10.1244752775; __utmz=173272373.1244752783.2.3.utmccn=(organic)|utmcsr=google|utmctr=adsense.google.com|utmcmd=organic; __utmc=173272373; __utmv=173272373.ExistingPublisher; PREF=ID=1ab1131528cb1f1a:TM=1244752750:LM=1244752750:S=z8a6mTRmDHVImKOg; TZ=-180; GMAIL_RTT=62; SID=DQAAAG4AAACVKgLK1udE8zJUkHfj7lB1exGg0rTbtWPXOIWORMueVZoT77XyJNTUltfGPonIuKt7PTVUs5qF-UvkhHR5cXcsIynN04AL3f7YMObLoOP5wkyGK9n7zHlw89Px0s8foYkobyH8Z9wzAZ2-FpZ7s9I3";
			echo(browser.set_cookie_for_url("http://www.google.com/","",cookie)+"<br>");
 
			// 6 шаг
			echo("6. Получим текущие куки гугла : ");
			echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br>");
 
			// конец
			echo("<hr><br>");
 
			app.quit();            
	  }
}

Пример использования set_cookie_for_url (Python):

# Additional paths
import sys
sys.path.insert(0, '../../../Templates PY/')
 
xhe_host = "127.0.0.1:7013"
from xweb_human_emulator import *
 
# начало
echo("<hr><font color=blue>browser.xxxxxxxxx</font><hr>")
 
# 1 
echo("1. Перейдем на гугл : ")
echo(browser.navigate("http://www.google.com/",""),"<br><br>")
 
# 2 
echo("2. Получим текущие куки гугла :")
echo(browser.get_cookie_for_url("http://www.google.com/",""),"<br><br>")
 
# 3 
echo("3. Очистим текущие куки гугла. ")
browser.clear_cookies("google.com",true,true)
 
# 4 
echo("<br><br>4. Получим текущие куки гугла - пустые : ")
echo(browser.get_cookie_for_url("http://www.google.com/",""),"<br><br>")
 
# 5  
echo("5. Зададим (Добавим) куки к гуглу : ")
cookie ="__utma=123272373.426502259.12244752769.12244752769.12424752775.2:__utmb=173272373.4.10.1244752775) __utmz=173272373.1244752783.2.3.utmccn=(organic)|utmcsr=google|utmctr=adsense.google.com|utmcmd=organic) __utmc=173272373) __utmv=173272373.ExistingPublisher) PREF=ID=1ab1131528cb1f1a:TM=1244752750:LM=1244752750:S=z8a6mTRmDHVImKOg) TZ=-180) GMAIL_RTT=62) SID=DQAAAG4AAACVKgLK1udE8zJUkHfj7lB1exGg0rTbtWPXOIWORMueVZoT77XyJNTUltfGPonIuKt7PTVUs5qF-UvkhHR5cXcsIynN04AL3f7YMObLoOP5wkyGK9n7zHlw89Px0s8foYkobyH8Z9wzAZ2-FpZ7s9I3"
echo(browser.set_cookie_for_url("http://www.google.com/","",cookie),"<br><br>")
 
# 6 
echo("6. Получим текущие куки гугла : ")
echo(browser.get_cookie_for_url("http://www.google.com/",""),"<br><br>")
echo(browser.get_cookie(),"<br><br>")
 
# конец
echo("<hr><br>")
 
# Quit
app.quit()

Пример использования set_cookie_for_url (JS):

// подключим объект для управления эмулятором, если еще не подключен
xhe_host="127.0.0.1:7010";
echo=require("../../../Templates JS/init.js");
 
// начало
echo("<hr><font color=blue>browser.set_cookie_for_url</font><hr>");
 
// 1 шаг
echo("1. Перейдем на гугл : ");
echo(browser.navigate("http://www.google.com/","")+"<br><br>");
 
// 2 шаг
echo("2. Получим текущие куки гугла :");
echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br><br>");
 
// 3 шаг
echo("3. Очистим текущие куки гугла. ");
echo(browser.clear_cookies("google.com",true,true)+"\n\n");
 
// 4 шаг
echo("4. Получим текущие куки гугла - пустые : ");
echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br><br>");
 
// 5 шаг 
echo("5. Зададим (Добавим) куки к гуглу : ");
cookie ="__utma=123272373.426502259.12244752769.12244752769.12424752775.2:__utmb=173272373.4.10.1244752775; __utmz=173272373.1244752783.2.3.utmccn=(organic)|utmcsr=google|utmctr=adsense.google.com|utmcmd=organic; __utmc=173272373; __utmv=173272373.ExistingPublisher; PREF=ID=1ab1131528cb1f1a:TM=1244752750:LM=1244752750:S=z8a6mTRmDHVImKOg; TZ=-180; GMAIL_RTT=62; SID=DQAAAG4AAACVKgLK1udE8zJUkHfj7lB1exGg0rTbtWPXOIWORMueVZoT77XyJNTUltfGPonIuKt7PTVUs5qF-UvkhHR5cXcsIynN04AL3f7YMObLoOP5wkyGK9n7zHlw89Px0s8foYkobyH8Z9wzAZ2-FpZ7s9I3";
echo(browser.set_cookie_for_url("http://www.google.com/","",cookie)+"<br><br>");
 
// 6 шаг
echo("6. Получим текущие куки гугла : ");
echo(browser.get_cookie_for_url("http://www.google.com/","")+"<br><br>");
echo(browser.get_cookie()+"<br><br>");
 
// конец
echo("<hr><br>");
 
// Quit
app.quit();