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를 사용해 버립니다.
잠시동안 같은 에러를 내지 않는다고는 생각합니다만, 똑같이 넘어진 사람에게 있어서, 참고가 되면 기쁩니다.
Reference
이 문제에 관하여(Ruby : 스크래핑에서 No method Error가 나온 당신에게), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Atsuyoshi-N/items/ebb3e382daee5f02f1f1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)