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

ooops

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

Что брать указано Всё и в список, а хочется в переменную сразу.
 

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
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);
 

ooops

Client
Регистрация
26.05.2015
Сообщения
93
Благодарностей
27
Баллы
18
Благодарю :az:
А без использования браузера не получить source ?)
 

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
Благодарю :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);
 

serg1208

Client
Регистрация
17.04.2018
Сообщения
331
Благодарностей
15
Баллы
18
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 просто в переменную без загрузки страницы ?

Спасибо
 

ZSharp

Client
Регистрация
29.09.2013
Сообщения
395
Благодарностей
126
Баллы
43
а как взять 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
 

serg1208

Client
Регистрация
17.04.2018
Сообщения
331
Благодарностей
15
Баллы
18
C#:
string pageSource = instance.ActiveTab.GetSourceText("UTF-8"); // Page.Source

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

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

serg1208

Client
Регистрация
17.04.2018
Сообщения
331
Благодарностей
15
Баллы
18

ZSharp

Client
Регистрация
29.09.2013
Сообщения
395
Благодарностей
126
Баллы
43

black_pariah

Client
Регистрация
08.09.2014
Сообщения
294
Благодарностей
91
Баллы
28
а как взять DOM просто в переменную без загрузки страницы ?

Спасибо
DOM без браузера не взять, можно собрать его(но это морока не стоит того), так как это модель страницы со скриптами и всем тем, что гет запрос отдать не может, можно взять source.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
DOM без браузера не взять, можно собрать его(но это морока не стоит того), так как это модель страницы со скриптами и всем тем, что гет запрос отдать не может, можно взять source.
Мне кажется, если последовательно выполнять правильные запросы, то можно вернуть все что надо.
 

black_pariah

Client
Регистрация
08.09.2014
Сообщения
294
Благодарностей
91
Баллы
28
Мне кажется, если последовательно выполнять правильные запросы, то можно вернуть все что надо.
можно, но и всё же есть такие хитрые штуки, которые гет запрос ну просто не выдаст, либо просто я не могу знать(отследить), по какому пути посылать гет иили пост(и какие в нём данные), чтобы все заманухи отдало.
 

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
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>) в этот код
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
подскажите плз как правильно вписать регулярку (?<=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

elproone

Новичок
Регистрация
05.03.2020
Сообщения
2
Благодарностей
0
Баллы
1
Здравствуйте. Прошу помощи! Подскажите, как использовать Article Extraction без браузера по ссылке из-под C#?
 

elproone

Новичок
Регистрация
05.03.2020
Сообщения
2
Благодарностей
0
Баллы
1
Я получаю методом GET HTML код страницы в переменную и мне нужно получить основную статью, то есть "вытащить" все, что делает Article Extraction только без браузера. Неужели ни у кого не стояла такая задача?
 

Sorrow

Пользователь
Регистрация
02.01.2019
Сообщения
36
Благодарностей
2
Баллы
8
Подскажите пожалуйста, как этот кубик переписать в C# код? Выше объясняли как взять DOM и регулярку в нем, а как взять определенный селектор не понятно, помогите кто знает.

 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 521
Благодарностей
1 319
Баллы
113
Подскажите пожалуйста, как этот кубик переписать в C# код? Выше объясняли как взять DOM и регулярку в нем, а как взять определенный селектор не понятно, помогите кто знает.

ПКМ по кубику и создать c# код, вроде бы так в новых версиях пишет. И в буфер скопируется код данного кубика.
 
Регистрация
05.06.2019
Сообщения
570
Благодарностей
454
Баллы
63
Подскажите пожалуйста, как этот кубик переписать в C# код? Выше объясняли как взять DOM и регулярку в нем, а как взять определенный селектор не понятно, помогите кто знает.

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

Sorrow

Пользователь
Регистрация
02.01.2019
Сообщения
36
Благодарностей
2
Баллы
8
Спасибо,
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);
Спасибо, а как результат положить в список проекта?
 
Регистрация
05.06.2019
Сообщения
570
Благодарностей
454
Баллы
63
  • Спасибо
Реакции: Sorrow

Sorrow

Пользователь
Регистрация
02.01.2019
Сообщения
36
Благодарностей
2
Баллы
8
Всё, разобрался, огромное спасибо!
 

Sorrow

Пользователь
Регистрация
02.01.2019
Сообщения
36
Благодарностей
2
Баллы
8
Помогите перевести в C# вот этот кубик

 

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