C# переход на страницу и взять source

  • Автор темы Автор темы ooops
  • Дата начала Дата начала

ooops

Client
Регистрация
26.05.2015
Сообщения
94
Реакции
27
Баллы
18
Всем привет. Подскажите пжлст, Нужно заменить переход на страницу и взять source, распарсить регуляркой и положить в переменную
на C# сниппет
DVQWv0n.png

Что брать указано Всё и в список, а хочется в переменную сразу.
 
C#:
Развернуть Свернуть Копировать
List<string> list = new List<string>();
instance.ActiveTab.Navigate("https://www.yandex.ru/","");
instance.ActiveTab.WaitDownloading();
string src = instance.ActiveTab.GetSourceText("UTF-8");
var matches = Regex.Matches(src,@"[\wа-я]+").Cast<Match>().Select(match => match.Value).ToList();;
return string.Join("\r\n",matches);
 
Благодарю :az:
А без использования браузера не получить source ?)
 
Благодарю :az:
А без использования браузера не получить source ?)
C#:
Развернуть Свернуть Копировать
List<string> list = new List<string>();

var resultHttpGet = ZennoPoster.HttpGet("https://www.yandex.ru/", instance.GetProxy(), "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,30000,"","",true,1,new string[] {""},"");
if (String.IsNullOrEmpty(resultHttpGet))
    throw new Exception("не смогли загрузить страницу");

var matches = Regex.Matches(resultHttpGet,@"[\wа-я]+").Cast<Match>().Select(match => match.Value).ToList();;
return string.Join("\r\n",matches);
 
C#:
Развернуть Свернуть Копировать
List<string> list = new List<string>();

var resultHttpGet = ZennoPoster.HttpGet("https://www.yandex.ru/", instance.GetProxy(), "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,30000,"","",true,1,new string[] {""},"");
if (String.IsNullOrEmpty(resultHttpGet))
    throw new Exception("не смогли загрузить страницу");

var matches = Regex.Matches(resultHttpGet,@"[\wа-я]+").Cast<Match>().Select(match => match.Value).ToList();;
return string.Join("\r\n",matches);
а как взять DOM просто в переменную без загрузки страницы ?

Спасибо
 
а как взять DOM просто в переменную без загрузки страницы ?

Спасибо
C#:
Развернуть Свернуть Копировать
string pageSource = instance.ActiveTab.GetSourceText("UTF-8"); // Page.Source
 
string pageDom = instance.ActiveTab.DomText; // Page.Dom
 
string pageText = instance.ActiveTab.PageText; // Page.Text
 
C#:
Развернуть Свернуть Копировать
string pageSource = instance.ActiveTab.GetSourceText("UTF-8"); // Page.Source

string pageDom = instance.ActiveTab.DomText; // Page.Dom

string pageText = instance.ActiveTab.PageText; // Page.Text
Но разве это не для уже загруженной страницы в инстанс ?
 
а как взять DOM просто в переменную без загрузки страницы ?

Спасибо
DOM без браузера не взять, можно собрать его(но это морока не стоит того), так как это модель страницы со скриптами и всем тем, что гет запрос отдать не может, можно взять source.
 
DOM без браузера не взять, можно собрать его(но это морока не стоит того), так как это модель страницы со скриптами и всем тем, что гет запрос отдать не может, можно взять source.
Мне кажется, если последовательно выполнять правильные запросы, то можно вернуть все что надо.
 
Мне кажется, если последовательно выполнять правильные запросы, то можно вернуть все что надо.
можно, но и всё же есть такие хитрые штуки, которые гет запрос ну просто не выдаст, либо просто я не могу знать(отследить), по какому пути посылать гет иили пост(и какие в нём данные), чтобы все заманухи отдало.
 
C#:
Развернуть Свернуть Копировать
List<string> list = new List<string>();
instance.ActiveTab.Navigate("https://www.yandex.ru/","");
instance.ActiveTab.WaitDownloading();
string src = instance.ActiveTab.GetSourceText("UTF-8");
var matches = Regex.Matches(src,@"[\wа-я]+").Cast<Match>().Select(match => match.Value).ToList();;
return string.Join("\r\n",matches);
подскажите плз как правильно вписать регулярку (?<=publishers"><p>).*(?=</p>) в этот код
 
подскажите плз как правильно вписать регулярку (?<=publishers"><p>).*(?=</p>) в этот код
C#:
Развернуть Свернуть Копировать
List<string> list = new List<string>();
instance.ActiveTab.Navigate("https://www.yandex.ru/","");
instance.ActiveTab.WaitDownloading();
string src = instance.ActiveTab.GetSourceText("UTF-8");
var matches = Regex.Matches(src,@"(?<=publishers""><p>).*(?=</p>)").Cast<Match>().Select(match => match.Value).ToList();
return string.Join("\r\n",matches);
 
  • Спасибо
Реакции: twisterrr
Здравствуйте. Прошу помощи! Подскажите, как использовать Article Extraction без браузера по ссылке из-под C#?
 
Я получаю методом GET HTML код страницы в переменную и мне нужно получить основную статью, то есть "вытащить" все, что делает Article Extraction только без браузера. Неужели ни у кого не стояла такая задача?
 
Подскажите пожалуйста, как этот кубик переписать в C# код? Выше объясняли как взять DOM и регулярку в нем, а как взять определенный селектор не понятно, помогите кто знает.

FJJzl5Po.jpg
 
Подскажите пожалуйста, как этот кубик переписать в C# код? Выше объясняли как взять DOM и регулярку в нем, а как взять определенный селектор не понятно, помогите кто знает.

FJJzl5Po.jpg
ПКМ по кубику и создать c# код, вроде бы так в новых версиях пишет. И в буфер скопируется код данного кубика.
 
Подскажите пожалуйста, как этот кубик переписать в C# код? Выше объясняли как взять DOM и регулярку в нем, а как взять определенный селектор не понятно, помогите кто знает.

FJJzl5Po.jpg

1 элемент
CSS Selector:
Развернуть Свернуть Копировать
instance.ActiveTab.QuerySelector(".serp-item > div h2 > a").GetAttribute("href");

Множество элементов
C#:
Развернуть Свернуть Копировать
var items = instance.ActiveTab.QuerySelectorAll(".serp-item > div h2 > a");
if (items == null && items.Count == 0) return "count 0";

foreach (var item in items)
    project.Lists["Ссылки"].Add(item.GetAttribute("href"));
 
Последнее редактирование:
  • Спасибо
Реакции: Sorrow
Спасибо,
1 элемент
CSS Selector:
Развернуть Свернуть Копировать
instance.ActiveTab.QuerySelector(".serp-item > div h2 > a").GetAttribute("href");

Множество элементов
C#:
Развернуть Свернуть Копировать
var items = instance.ActiveTab.QuerySelectorAll(".serp-item > div h2 > a");
if (items == null && items.Count == 0) return "count 0";

var list = new List<string>();
foreach (var item in items)
    list.Add(item.GetAttribute("href"));

File.AppendAllLines(project.Directory + @"\result.txt", list);

Спасибо, а как результат положить в список проекта?
 
Всё, разобрался, огромное спасибо!
 
Помогите перевести в C# вот этот кубик

3EDaCU0G.jpg
 

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