문제

RSS의 연습으로서 나는이 그룹에 대한 거의 모든 UNIX 토론을 검색하고 싶습니다.

comp.unix.shell

나는 충분한 파이썬을 알고 기본 RSS를 이해하지만, 나는 갇혀 있습니다 ... 특정 날짜 사이에 모든 메시지를 가져 오는 방법, 또는 최소한 Nth 최근과 Mth 사이의 모든 메시지를 어떻게 가져 오는가?

높은 수준의 설명, 의사 코드를 환영합니다.

고맙습니다!

편집하다:

100 개가 넘는 메시지를 되돌릴 수 있지만이 URL을 사용하는 것과 같은 한 번에 10 개의 메시지를 구문 분석하는 것과 같은 것을 가져 가지 않습니다.

http://groups.google.com/group/comp.unix.shell/topics?hl=en&start=2000&sa=n

더 나은 방법이 있어야합니다.

도움이 되었습니까?

해결책

Randal이 언급했듯이 이것은 Google의 TOS를 위반하지만 이러한 제한없이 다른 사이트에서 가설 적이거나 다른 사이트에서 사용할 수 있습니다. urllib 그리고 BeautifulSoup. urllib을 사용하여 페이지를 열고 BeautifulSoup을 사용하여 모든 스레드 주제 (및 더 깊이 기어 다니는 경우 링크)를 가져옵니다. 그런 다음 프로그래밍 방식으로 결과의 다음 페이지에 대한 링크를 찾은 다음 다른 urllib를 만들어 2 페이지로 이동 한 다음 프로세스를 반복 할 수 있습니다.

이 시점에서 모든 원시 데이터가 있어야하며 데이터를 조작하고 검색 기능을 구현하는 문제 일뿐입니다.

다른 팁

크롤링 Google 그룹은 Google의 서비스 약관, 특히 문구 :

로봇, 스파이더, 사이트 검색/검색 응용 프로그램 또는 기타 장치를 사용하여 서비스의 일부를 검색하거나 색인하거나 사용자에 대한 정보를 수집하거나 무단 목적으로 수집하십시오.

당신이 그렇게 공개적으로하고 있다고 발표하고 싶습니까? 그리고 당신은 당신의 결과의 결과에 대해 눈을 멀게하고 있습니까?

최근 N의 경우 매개 변수를 전달할 수있는 것 같습니다. ?num=50 또는 피드 URL의 무언가

예를 들어, comp.unix.shell Group의 50 개의 새 메시지

http://groups.google.com/group/comp.unix.shell/feed/atom_v1_0_msgs.xml?num=50

그런 다음 FeedParser 프로그램을 선택하십시오 보편적 인 피드 파서

거기 있습니다 .update_parsed 옵션 FeedParser, 당신은 그것을 사용하여 특정 날짜 범위 내에서 MSG를 확인할 수 있습니다.

>>> e.updated_parsed              # parses all date formats
(2005, 11, 9, 11, 56, 34, 2, 313, 0)

Yahoos YQL에 대해 생각해 보셨습니까? 너무 나쁘지 않고 많은 API에 액세스 할 수 있습니다. http://developer.yahoo.com/yql/

그룹이 부족했는지는 모르겠지만 RSS 피드에 액세스 할 수 있습니다. 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top