2012-11-07 3 views
0

시작하려면 내 트위터 계정의 모든 추종자를 얻고 싶습니다. 나는 약간의 연구를했고 Ruby on rails로 Nokogiri 또는 Mechanize gems를 사용하여 웹 스크 래핑을 할 수 있음을 발견했습니다. 나는 또한 웹 긁기를 위해 사용할 CSS 선택기가있다. 내가 찾으면 HTML 페이지 소스에 계정의 모든 팔로어가 표시되지 않습니다.Twitter API와 웹 스크래핑?

웹 스크래핑 코드를 사용하여 내 트위터 팔로어를 모두 가져올 수 있습니까? 아니면 트위터 API를 사용해야합니까?

+3

다른 방법으로 물어보십시오. 제공된 API를 사용하지 않는 이유는 무엇입니까? [합법적 인] 합당한 이유가 없다면 API를 사용하십시오. 그것이 저자가 만든 것입니다. 지원되며 작업을 위해 설계되었으며 모든 작업 (대역폭 및 서버 오버 헤드는 말할 필요도 없음)을 저장합니다. –

답변

5

가능한 한 일반적으로 API를 절대적으로 사용하십시오.

이름에서 알 수 있듯이 "스크래핑"을 사용하면 MVC 용어로 응용 프로그램의 "표면"을 다루기 만하면됩니다. 이러한 전망은 언제든지 바뀔 수 있습니다 - 트위터 및 기타 유사한 서비스가 사이트 재 설계를 거치는 횟수를 생각하십시오. 근근이 살아가고 있다면 각 사이트 재 설계, 심지어 사소한 재 설계로 인해 기존 코드가 손상 될 가능성이 높아지고 경고없이 추측을 기반으로 광란 업데이트를 수행해야합니다.

Nokogiri와 Mechanize는 강력한 도구이지만 끊임없이 변화하는 "표면"을 우회하여 데이터베이스 콘텐츠에 직접 액세스하는 API의 기능, 안정성 및 일관성과 절대로 비교하지 않습니다. Twitter의 경우 API에 액세스하기위한 Twitter gem과 같은 API 래퍼가 추가되어 API에 사용자에게 친숙한 레이어가 추가되어 애플리케이션에 쉽게 통합 될 수 있습니다.

그래서 요약하면 Twitter 젬과 같은 API 래퍼를 통해 API를 사용할 수 있습니다.

+0

응용 프로그램의 표면에 대한 자세한 설명을 주셔서 감사합니다. 나는 지저귐 보석에 갈 것이다. – Rubyuser

+0

다음은 또 다른 예입니다. https://github.com/twitter/twitter-text-rb –

2

웹 스크래핑은 일반적으로 서비스가 API를 제공하지 않거나 API가 필요한 모든 기능을 충분히 제공하지 않을 때 마지막 수단입니다.

먼저 API를 살펴볼 것입니다. 이것은 그것이 설계된 것입니다.

웹 스크래핑은 웹 사이트 구조가 크게 바뀌고 코드가 작동하지 않아 문제가 될 수 있습니다.

일반적으로 공용 API는 제공되는 데이터에 큰 변화가 없도록 일종의 계약을하는 경향이 있습니다. 변경 사항이있는 경우 API는 API의 버전 관리 (API의 이전 버전 호출 기능) 또는 변경 사항과 발생할시기에 대한 정보를 제공하는 문서를 제공합니다.

또한 웹 스크래핑에는 추가 대역폭과 같은 다른 비용이 있습니다. API에서 얻은 데이터는 일반적으로 애플리케이션에서 더 유용합니다.

또한 필요한 API에 액세스하는 데 필요한 많은 기본 기능을 제공하는 라이브러리가 많이 있습니다 (루비 보석). 또한 API가 업데이트 될 때 일반적으로 업데이트됩니다.

+0

+1 및 버전 관리에 대한 좋은 점. –

+0

기업 계정의 경우 twitter API를 사용할 수 있는지 여부는 확실하지 않았습니다. 하지만 API가 최선의 선택 인 것 같습니다. – Rubyuser