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);
Благодарю
А без использования браузера не получить source ?)
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 просто в переменную без загрузки страницы ?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 просто в переменную без загрузки страницы ?
Спасибо
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
вопрос снят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 без браузера не взять, можно собрать его(но это морока не стоит того), так как это модель страницы со скриптами и всем тем, что гет запрос отдать не может, можно взять source.а как взять DOM просто в переменную без загрузки страницы ?
Спасибо
Мне кажется, если последовательно выполнять правильные запросы, то можно вернуть все что надо.DOM без браузера не взять, можно собрать его(но это морока не стоит того), так как это модель страницы со скриптами и всем тем, что гет запрос отдать не может, можно взять source.
можно, но и всё же есть такие хитрые штуки, которые гет запрос ну просто не выдаст, либо просто я не могу знать(отследить), по какому пути посылать гет иили пост(и какие в нём данные), чтобы все заманухи отдало.Мне кажется, если последовательно выполнять правильные запросы, то можно вернуть все что надо.
подскажите плз как правильно вписать регулярку (?<=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,@"[\wа-я]+").Cast<Match>().Select(match => match.Value).ToList();; return string.Join("\r\n",matches);
подскажите плз как правильно вписать регулярку (?<=publishers"><p>).*(?=</p>) в этот код
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);
ПКМ по кубику и создать c# код, вроде бы так в новых версиях пишет. И в буфер скопируется код данного кубика.Подскажите пожалуйста, как этот кубик переписать в C# код? Выше объясняли как взять DOM и регулярку в нем, а как взять определенный селектор не понятно, помогите кто знает.
1 элементПодскажите пожалуйста, как этот кубик переписать в C# код? Выше объясняли как взять DOM и регулярку в нем, а как взять определенный селектор не понятно, помогите кто знает.
instance.ActiveTab.QuerySelector(".serp-item > div h2 > a").GetAttribute("href");
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"));
Спасибо, а как результат положить в список проекта?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);
ОбновилСпасибо,
Спасибо, а как результат положить в список проекта?