C#
[C#] Selenium을 이용한 실시간 검색어 크롤링하기(2)
데브워니
2022. 11. 14. 15:32
실시간 검색어 사이트를 크롤링한 결과를 버튼안에 넣어, windows Form에 띄워보고자한다.
List를 이용하여 10개의 버튼에 1순위부터 10순위까지의 결과 값을 추가해준다.
foreach문에서 List(0)번째 부터 검색어 순위 값과 매칭되도록 하였다.
public Form1()
{
InitializeComponent();
try
{
_driverService = ChromeDriverService.CreateDefaultService();
_driverService.HideCommandPromptWindow = true;
_options = new ChromeOptions();
_options.AddArgument("disable-gpu");
group.Add(button2);//list(0)부터 시작
group.Add(button3);
group.Add(button4);
group.Add(button5);
group.Add(button6);
group.Add(button7);
group.Add(button8);
group.Add(button9);
group.Add(button10);
group.Add(button11);//list(9)
}
catch (Exception exc)
{
Trace.WriteLine(exc.Message);
}
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
_driver = new ChromeDriver(_driverService, _options);
_driver.Navigate().GoToUrl("https://signal.bz/");
var ranktime = _driver.FindElement(By.XPath("//*[@id='app']/div/main/div/section/div/section/section[1]/div[1]/div[1]/span")).Text;
Console.WriteLine("ranktime:" + ranktime);
var ranks = _driver.FindElements(By.ClassName("rank-layer"));
int i = 0;
foreach (var rank in ranks)
{
var num = rank.FindElement(By.ClassName("rank-num")).Text;
var search = rank.FindElement(By.ClassName("rank-text")).Text;
group.ElementAt(i).Text = search.ToString();//ElementAt - list0부터 매칭
i++;
Console.WriteLine(num + "." + search);
}
}
catch (Exception exc)
{
Trace.WriteLine(exc.Message);
}
}
결과
검색어 1순위부터 10순위까지의 결과가 버튼안에 들어간 것을 확인할 수 있다.