Ruby : 스크래핑에서 No method Error가 나온 당신에게

소개



제목대로입니다.
스크래핑을 하고 있어, 있는 느낌이 들지만, 왠지 NoMethodError가 나온다고 하는 경우에 봐 주시면 좋을까라고 생각합니다.

내 환경에서 오류를 재현하여 보았습니다. 다음과 같은 오류 문장이 아마 있을 것입니다.

Scraping.rb
scraping.rb:36:in `<main>`: undefined method `get_attribute` for #<Nokogiri::XML::NodeSet:0x007fa32bc11710> (NoMethodError)

get_attribute의 부분은, 어쩌면 inner_text나, text일지도 모릅니다.

해결책



~~.search() 부분을 ~~.at()로 변경해 봅시다.
코드베이스에서 보면,
elements = page.search()
この部分を

     ↓↓↓↓↓

element = page.at()
こうです

단수·복수는 반환값이 하나 밖에 없는지, 복수가 있을 가능성이 있을지에 의해 변경하고 있습니다.
search는, 配列が返り値 (으)로서 반환해 주기 위해(때문에), each나(배열 객체)[0]등을 사용해, 배열안의 요소에 액세스 하지 않으면 안 되기 때문입니다.

무슨 일이 일어날까?



자신이 자주 이 오류가 발생하면 다음 버튼을 누를 때입니다.
그만 버릇으로 search를 사용해 버립니다.


잠시동안 같은 에러를 내지 않는다고는 생각합니다만, 똑같이 넘어진 사람에게 있어서, 참고가 되면 기쁩니다.

좋은 웹페이지 즐겨찾기