호로레츄츄
40
2017-07-14 12:35:16
4
895

node.js로 웹 스크래핑을 하고 있습니다.


어휘력이 부족하여 글을 잘 못씁니다 ㅜㅜ


n사의 부동산 페이지를 스크래핑 하려 합니다.

request와 cheerio를 이용하여 작성중인데 문제가 생겼습니다.

해당 중개업체가 가지고 있는 매물의 정보를 한 매물씩 가져오려면 기준을 세워야 해서

그 기준을 거래종류로 정하여 소스를 보았습니다.



class가 sale_type2 인 td를 기준으로 하고 싶은데 class=sale_type2 가 2개가 있습니다.

두 개중에 위의 td만을 인식하게 하려면 어떻게 해야 하나요?

$('td.sale_type2').each( function ( i, element ) {
...
}

뭔가 tabindex 속성이 없는 td.sale_type2를 지정해야 할것 같은데...

도와주세요..


0
  • 답변 4

  • JusticeKing
    68
    2017-07-14 12:44:51

    eq를 쓰시면 됩니다.

  • yihoyoung111
    275
    2017-07-14 13:00:12

    cheerio 를 이용하는것 보다 
    대용량 스크래핑에는 정규식을 사용하는걸 추천드립니다.

    문자열을 다시 파싱해서 dom을 만드는 작업이 심한 리소스 낭비라고 생각됩니다.

    가끔 필요한 값들이 JS 소스에 있는 경우도 많습니다.

  • 호로레츄츄
    40
    2017-07-14 14:31:35

    두분 다 감사합니다 

  • 나우
    87
    2017-07-14 15:39:16 작성 2017-07-14 15:45:04 수정됨

    첫번째 td만    $('td.sale_type2:first-child')

                또는    $($('td.sale_type2')[0])


    tabindex 없는거   $('td.sale_type2:not([tabindex])')






  • 로그인을 하시면 답변 을 등록할 수 있습니다.