post-запрос

Регистрация
13.04.2016
Сообщения
660
Реакции
53
Баллы
28
Приветствую уважаемые знатоки!
Подскажите пожалуйста как правильно сделать post-запрос на https://www.youtube.com/, вбить в поисковую строку текст: "итальянская мебель" и получить первый же ролик из списка в переменную.
Как не пытался делать - не выходит.
Спасибо за отклик!
 
Если GET устраивает -

46b24e6a80bf8ff030b39f62d0e23370.png

Выделенный текст - айдишник ролика, как спарсить - думаю догадаетесь
 
  • Оценить
Реакции: Анатолий
Вот мне чисто интересно, как именно ты "только не пытался", если выше предоставили самый простейший и ожидаемый рабочий вариант?
если версия 5.9.9.1 то как не пытайся - не получилось бы.. :-)
ну конечно если не знать пути обхода этого глюка (приходит пустой ответ от ютуба)..
а если новая версия, то да - странно..
видимо именно пост-запрос рассматривался, не гет..
 
  • Оценить
Реакции: doc
если версия 5.9.9.1 то как не пытайся - не получилось бы.. :-)
ну конечно если не знать пути обхода этого глюка (приходит пустой ответ от ютуба)..
а если новая версия, то да - странно..
видимо именно пост-запрос рассматривался, не гет..
о каких путях обхода речь?
 
Ну постом точно так же, возвращает такой же результ. Если ничего дополнительного не указывать, то оно вернет, то что и спрашивали


6883c510af4d06295eca8ea591a86ea7.png
 
  • Оценить
Реакции: Sanekk, Dimionix и doc
о каких путях обхода речь?
Или так
C#:
Развернуть Свернуть Копировать
string userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0";
string query = "\"итальянская мебель\"";
string url = "https://www.youtube.com/results?q=" + query + "&sp=EgIQAQ==";

// GET запрос
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
request.Method = "GET";
request.UserAgent = userAgent;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string resultGet = reader.ReadToEnd();
response.Close();
reader.Close();

// Парсим id первого ролика
Match match = Regex.Match(resultGet, "(?<=data-context-item-id=\").*?(?=\")");
if (!match.Success) return null;
return match.Value;
 
если версия 5.9.9.1 то как не пытайся - не получилось бы.. :-)
ну конечно если не знать пути обхода этого глюка (приходит пустой ответ от ютуба)..
а если новая версия, то да - странно..
видимо именно пост-запрос рассматривался, не гет..
о чем речь,поделитесь пожалуйста)
upd: долго не обновлял страницу...сорру за оффтоп
 
Вот мне чисто интересно, как именно ты "только не пытался", если выше предоставили самый простейший и ожидаемый рабочий вариант?
Приветствую! я не силён в зенке, в любом варианте переменная с роликом пустая...
 
Спасибо за помощь ребята! только домой приехал, сейчас буду тренероваться ...
 
Или так
C#:
Развернуть Свернуть Копировать
string userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0";
string query = "\"итальянская мебель\"";
string url = "https://www.youtube.com/results?q=" + query + "&sp=EgIQAQ==";

// GET запрос
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
request.Method = "GET";
request.UserAgent = userAgent;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string resultGet = reader.ReadToEnd();
response.Close();
reader.Close();

// Парсим id первого ролика
Match match = Regex.Match(resultGet, "(?<=data-context-item-id=\").*?(?=\")");
if (!match.Success) return null;
return match.Value;
 

Вложения

  • 795ee6d264.jpg
    795ee6d264.jpg
    196,8 KB · Просмотры: 842
string query = "\"итальянская мебель\"";
как правильно воткнуть сюда свою переменную чтобы работало, ставлю вместо "итальянская мебель" {-Variable.video-} - ошибка
 
string query = "\"итальянская мебель\"";
как правильно воткнуть сюда свою переменную чтобы работало, ставлю вместо "итальянская мебель" {-Variable.video-} - ошибка
если переменная из проекта ,то
string query = project.Variables["твоя переменная"].Value;
zennowiki читай побольше там много полезного,и поищи видео от ростоникса, такие вопросы сами собой отпадать начнут
 
  • Оценить
Реакции: Анатолий
да уж, код - это тёмный лес, сделал настройки по вашим спойлерам, теперь код работает, но ни один кубик проекта теперь работать не хочет-сразу ошибки, шею можно свернуть в этих дебрях.
 
да уж, код - это тёмный лес, сделал настройки по вашим спойлерам, теперь код работает, но ни один кубик проекта теперь работать не хочет-сразу ошибки, шею можно свернуть в этих дебрях.
фото из лога выложи,после настроек из using ни каких ошибок в кубиках быть не должно
 
если переменная из проекта ,то
string query = project.Variables["твоя переменная"].Value;
zennowiki читай побольше там много полезного,и поищи видео от ростоникса, такие вопросы сами собой отпадать начнут
http://joxi.ru/gmv3X5FLv8pV2a
так тоже не работает, ладно, чёрт с ним, уберу код, это для самых умных.
 
выложи код у тебя ошибки где-то в символах
ps я пробовал код dimonixa все работает отлично
тот же код, только полностью заменил строку с переменной на вашу: string query = project.Variables["тут код моей переменной"].Value;

я уже удалил все настройки и код, забейте.
 
тот же код, только полностью заменил строку с переменной на вашу: string query = project.Variables["тут код моей переменной"].Value;

я уже удалил все настройки и код, забейте.
как это забить,а результат)
вод код работает с переменной из проекта,создай переменную test1 и положи туда нужное значение,например итальянская мебель
Код:
Развернуть Свернуть Копировать
string userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0";
string query = project.Variables["test1"].Value;//в переменной test1 лежит значение итальянская мебель
string url = "https://www.youtube.com/results?q=" + query + "&sp=EgIQAQ==";
// GET запрос
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
request.Method = "GET";
request.UserAgent = userAgent;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string resultGet = reader.ReadToEnd();
response.Close();
reader.Close();
// Парсим id первого ролика
Match match = Regex.Match(resultGet, "(?<=data-context-item-id=\").*?(?=\")");
if (!match.Success) return null;
return match.Value;
 
Переделал код пот текущие реалии, но почему то у меня не работает. Библиотеку подключил:
C#:
Развернуть Свернуть Копировать
string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 YaBrowser/21.8.2.381 Yowser/2.5 Safari/537.36";
string query = project.Variables["test1"].Value;//в переменной test1 лежит значение итальянская мебель
string url = "https://www.youtube.com/results?search_query=" + query + "&sp=EgIQAQ==";
// GET запрос
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
request.Method = "GET";
request.UserAgent = userAgent;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string resultGet = reader.ReadToEnd();
response.Close();
reader.Close();
// Парсим id первого ролика
Match match = Regex.Match(resultGet, "(?<=video_id=).*(?=&)");
if (!match.Success) return null;
return match.Value;
Выдает ошибку:
Выполнение действия CSharp OwnCode. Ссылка на объект не указывает на экземпляр объекта.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)