반응형
Selenium으로 XPath를 활용하여 데이터를 크롤링할때
내가 원하는 특정한 값을 수집할 수 있는 방법은 소개해볼까합니다.
XPath 문법에서 사용하는 contains() 함수입니다.
안녕하세요 IT훈이입니다 😁
XPath contains
contains() 함수 설명
첫번째 문자열이 두번째 문자열을 포함하고, 있다면 TRUE, 없다면 FALSE를 리턴하는 함수
contains() 기본문법
아래 소스는 기본문법에 대한내용입니다.
Xpath = //tagname[contains (@attribute, 'Value')]
Using Text
텍스트를 찾고싶을때 사용하는 contains
[contains(text(), 'XYZ')]
Using id
id를 찾고싶을때 사용하는 contains
div[contains(@id, 'test')]
실제 사용 예시
tag에서 text가 'word'인 문자의 앨리먼트를 얻고자할 때
driver.FindElement(By.XPath("//tag [contains( text(), 'word' )]"));
Contain() 사용해보기
아래는 테스트를 위한 예시 HTML입니다.
<html>
<body>
<div id="cosmetics"><br><br><br><br><br>
<button type="button">World Wide Market</button><br><br>
<button type="button" >OLAY</button><br><br>
<button type="button">MAC </button><br><br>
<button type="button">FruitMAC</button><br><br>
<button type="button">Fruit</button><br><br>
<button type="button">Lakme MAC</button><br><br>
<input type = "text" class="name" value="name world test" name="btn1">
<input type = "text" class="age" value="age world test" name="btn2">
<input type = "text" class="old" value="old test" name="btn3">
</div>
</body>
</html>
실제 브라우저에서 노출되는 화면
위의 html을 파일로만들어 실행하게되면 나타나는 화면입니다. 해당화면에서 contain()함수를 사용해보겠습니다.
button태그에 있는 텍스트들 중에 'World' 가 있는 위치를 찾아달라.
driver.FindElement(By.XPath("//button[contains(text(),’World’)]"));
input태그에서 value라는 속성에 test라는 값이 있는지 찾아달라
driver.FindElement(By.XPath("input[contains(@value,'test')]"));
2022.06.22 - [훈개발/C#] - C#, ChromeDriver 활용한 크롤링 자동화처리 네이버 웹툰 리스트 불러오기
2022.06.24 - [훈개발/Python] - [Python] 웹크롤링 Selenium 과 ChromeDriver 사용법, 설치방법 총정리
2022.06.03 - [훈개발] - C#에서 크롤링 웹자동화 크롬드라이버( Chrome Driver ), 셀레니움 (Selenium ) 설치하기
반응형
'훈, IT 공부 > C#' 카테고리의 다른 글
C# 외부 프로그램 .exe 실행하기 (6) | 2022.10.06 |
---|---|
C#, ChromeDriver 활용한 크롤링 자동화처리 네이버 웹툰 리스트 불러오기 (4) | 2022.06.22 |
댓글