From 30be92d1daa88f78ca3ed7e7d34f0a7902254dac Mon Sep 17 00:00:00 2001 From: Ricardo Carneiro Date: Sat, 10 Aug 2024 23:40:02 -0300 Subject: [PATCH] =?UTF-8?q?Lendo=20os=20servi=C3=A7os?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Program.cs | 47 +++++++++++++++++++++++++++++++++++++++-- SharepointScrape.csproj | 4 ++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/Program.cs b/Program.cs index 3751555..6c4d58c 100644 --- a/Program.cs +++ b/Program.cs @@ -1,2 +1,45 @@ -// See https://aka.ms/new-console-template for more information -Console.WriteLine("Hello, World!"); +using PuppeteerSharp; + +var browserFetcher = new BrowserFetcher(); +await browserFetcher.DownloadAsync(); +var browser = await Puppeteer.LaunchAsync(new LaunchOptions +{ + Headless = false +}); +var page = await browser.NewPageAsync(); +await page.GoToAsync("https://domvsitcom.sharepoint.com/sites/Comunica/SitePages/Portfólio-de-Serviços.aspx"); + +await page.WaitForSelectorAsync("input[name='loginfmt']"); + +page.TypeAsync("input[name='loginfmt']", "ricardo.carneiro@domvsit.com.br").Wait(); +page.ClickAsync("input[type='submit']").Wait(); + +page.TypeAsync("input[name='passwd']", "C4rn31r0#13").Wait(); +page.ClickAsync("input[type='submit']").Wait(); + + +await page.WaitForSelectorAsync("div[title='Serviços']", new WaitForSelectorOptions { Timeout=60000 }); + +var list = await page.QuerySelectorAllAsync("div[class='ms-List-page'] > div[role='presentation']"); +var gotoList = new List(); +var content = new Dictionary(); +foreach (var item in list) +{ + var pageHeaderHandle = await item.QuerySelectorAsync("div[role='listitem'] > a"); + var link = await pageHeaderHandle.GetPropertyAsync("href"); + var linkGoTo = await link.JsonValueAsync(); + gotoList.Add(linkGoTo.ToString()); +} + +foreach (var url in gotoList) +{ + await page.GoToAsync(url); + var pageHeaderHandle = await page.QuerySelectorAsync("div[role='main']"); + var link = await pageHeaderHandle.GetPropertyAsync("innerText"); + var htmlInside = await link.JsonValueAsync(); + var title = htmlInside.ToString().Substring(0, htmlInside.ToString().IndexOf('\n')); + content.Add(url, $"**{title}** \n\r - {htmlInside.ToString()} "); +} + + + diff --git a/SharepointScrape.csproj b/SharepointScrape.csproj index 2150e37..6f569f2 100644 --- a/SharepointScrape.csproj +++ b/SharepointScrape.csproj @@ -7,4 +7,8 @@ enable + + + +