2017-02-23 6 views

답변

0

DOM을 선택기 구문은 단지 요소 이름, 클래스, IDS보다 더 깊은 간다 : 아래는 내가 노코 기리 사용하여 타겟팅 할 HTML의 예입니다. 특정 속성 값을 일치시킬 수도 있고 class은 다른 속성 일 수도 있습니다. 이 설정 클래스 속성을 해달라고 td것을 선택 다르다는 점

"td[class='']" 

참고 : 클래스는 빈 문자열입니다

모든 td을 선택합니다. 이 경우 다음을 사용할 수 있습니다.

HTML은 내게 속하지 않는 것처럼 들리므로 다른 접근 방식을 사용합니다. Chrome을 사용하는 경우 브라우저 속성의 HTML 트리에서 요소를 찾은 다음 마우스 오른쪽 버튼을 클릭하고 copy => selector를 클릭합니다. 다음 붙여 넣기; 요소에 액세스 할 수있는 고유 한 선택기가 있습니다.

이것은 Nokogiri가 Javacript를 실행하지 않는다는 사실로 인해 훨씬 ​​더 복잡해졌습니다. 따라서 브라우저 검사기의 DOM이 Nokogiri가 참조한 DOM과 동일하다는 보장이 없습니다. 이 경우 원본 페이지 원본을보고 구조가 동일한 지 확인해야합니다.

JS를 실행할 수있는 Selenium과 같은 자동화 된 브라우저를 사용하면 다른 사람의 페이지를 손쉽게 훑어 볼 수 있습니다.

1
# encoding: UTF-8 
require 'nokogiri' 

web = '<a class="ok">selected</a>' 


p Nokogiri::HTML(web).xpath('//a[@class="ok"]').text 
#=> selected 

web = '<a class="">selected</a>' 


p Nokogiri::HTML(web).xpath('//a[@class=""]').text 
#=> selected 

이 방법으로 빈 클래스 요소를 선택할 수 있습니다. 어쩌면 시도해 볼 수 있습니다. 다른 구문 오류가 있는지 확인합니까?