2017-12-27 7 views
0

셀레늄을 사용하여 스탁 그램에서 게시물을 추출하므로 이미지 src와 해당 텍스트를 가져옵니다. 문제는 그것을 추출하는 동안 같은 게시물을 위해 같은 src와 다른 텍스트를 긁어 모으는 것입니다.

여기셀렌을 사용하여 동일한 결과 추출하기 #

var options = new ChromeOptions(); 
options.AddArguments("--disable-gpu"); 
var driverService = ChromeDriverService.CreateDefaultService(); 
driverService.HideCommandPromptWindow = true; 
var dr = new ChromeDriver(driverService, options); 
for (int d = 0; d < listBox1.Items.Count; d++) 
{ 
    dr.Navigate().GoToUrl("https://www.instagram.com/" + listBox1.Items[d].ToString()); 
    var number = dr.FindElementByClassName("_fd86t").Text; 
    Thread.Sleep(100); 
    dr.FindElementByClassName("_si7dy").Click(); 
    for (int s = 0; s < Convert.ToInt32(numericUpDown1.Value); s++) 
    { 
     Thread.Sleep(1000); 

     if (dr.FindElements(By.XPath("/html/body/div[4]/div/div[2]/div/article/div[1]/div/div/div/div[2]/a")).Count != 0) 
     { 
      dr.Keyboard.SendKeys(OpenQA.Selenium.Keys.Right); 
     } 
     else 
     { 
      var src = dr.FindElementByClassName("_2di5p").GetAttribute("src"); 
      var pra = dr.FindElementByClassName("_ezgzd").FindElement(By.TagName("span")).Text; 
      this.Invoke(new MethodInvoker(delegate() 
      { 
       dataGridView1.Rows.Add(src.ToString(), pra.ToString()); 

      })); 
      dr.Keyboard.SendKeys(OpenQA.Selenium.Keys.Right); 

     } 
    } 
} 
+0

잘 모르겠지만 그 요소의 다른 모든 특성과 주변 요소를 검사해야합니다. –

+0

nah 관련 선박 –

답변

0

이 시도 내 코드입니다 : "."

하는 클래스 이름을 추가함으로써, XPath는에 의하여 찾기 바꾸기 해당 노드를 선택합니다. 그렇지 않으면이 클래스의 첫 번째 발생을 선택합니다.

dr.FindElementByXpath(".//*[@class='_si7dy'").GetAttribute("src"); 
+0

이 없지만 여전히 동일한 문제가 작동하지 않습니다. –