2015-01-04 5 views
2

다른 위치에 RSS 피드가 노출 된 100 개의 웹 사이트가 있습니다. 이 위치에는 여러 피드를 가리키는 몇 개의 RSS 피드 링크가 있습니다. 영국 BBC RSS로 그것과 거의 동일 페이지 http://www.bbc.com/news/10628494Extract RSS Feed URL from

사이트 1 피드 : 사이트 2 domain1.com/rss :

가에 RSS 링크를 추출 할 수있는 방법이 있나요 domain2.com/enviroments/rss 각 피드 XML.

와 비슷하지만이 부분은 Automatically Extracting feed links (atom, rss,etc) from webpages과 비슷하지만 사이트에만 제공하고 싶습니다. 그래서 특정 사이트에 대해 가능한 모든 RSS 피드를 얻습니다.

저는 100 개의 웹 사이트에서 제공되는 모든 RSS 피드 목록을 원합니다. 그러면 대시 보드에서 모니터 할 수 있습니다. 오, bith 원자와 rss가 섞인 피드.

내가 한 것. 나는 apache nutch와 parse-feed plugin을 들여다 보았다. 치료는 다음 옵션 이었지만 아직도 내가 무엇을 찾고 있는지 확실하지 않습니다.

답변

6

일반적으로 RSS 피드를 제공하는 웹 사이트는 적어도 홈 페이지의 헤더에 모든 단일 페이지를 나타냅니다. 유형은 웹 사이트간에 약간 다를 것

<link href="http://snapwebsites.org/rss.xml" 
     title="Snap! A C++ Open Source CMS RSS" 
     type="application/rss+xml" 
     rel="alternate"> 

참고 :

는 RSS 피드의 예입니다. 예를 들어 application 대신 text을 사용할 수있는 웹 사이트가 있습니다 (잘못된 것이지만 XML은 텍스트 ...). application/atom+xml도 있습니다. 두 형식을 모두 사용할 수도 있습니다.

  • 는 HTML을 앵커
  • 에 대한
  • 봐 구문 분석 : 그 사용할 수없는 경우

    , 당신은 의미 홈 페이지 또는 RSS 피드 앵커 링크에 대한 다른 페이지를 확인해야 할 것

  • 다음 루트 태그를 확인이 XML 파일
  • XML 파일을받을 경우 (<?xml ...로 시작)를 반환 여부를 확인하기 위해 대상을 확인 href 속성
  • 읽기 :
    1. 'RSS'- RSS 형식 (버전은 속성입니다)
    2. '피드'- 아톰 형식

나는 <link ...> 태그가 포함 된 다음 페이지의 예를 헤더 :

내가 말할 필요가

http://snapwebsites.org/implementation/feature-requirements/feed-feature-core-atom-rss-20-etc

, 링크없이, RSS 피드를 찾기 위해 상당히 어렵게 될 것입니다. 즉, 많은 웹 사이트에서 피드 파일은 확장자 (.rss, .atom, .xml)를 사용하며 검색을 간소화하는 데 사용될 수 있습니다.그러나 피드가 디렉토리 이름처럼 보입니다 (.../blah 또는 .../foo은 표준 HTML 페이지 또는 피드와 구별 할 수 없으므로 대상에서 파일을 읽고 파일 형식을 확인하는 것이 유일한 방법입니다. HTTP의 Content-Type) 회신은 application/rss+xml 또는 application/atom+xml이어야합니다 ... 헤더 링크 type=... 속성과 같아야합니다.

+1

나는 사람들이 적절한 유형의 피드 링크를 넣기를 바랍니다. 그래서 그들은 쉽게 데리러 올 수 있습니다. 내가 크롤링을하지 않는다면 크롤링 시간이 훨씬 오래 걸린다는 것을 알 수 있습니다. – user3279550

+0

예. 글쎄 ... 일단 당신이 좋은 링크를 얻을. 반대로, 하나의 웹 사이트에 많은 피드가있는 경우 헤더의'link' 태그에 모든 피드가 나타나지 않을 것입니다. 그것은 당신이 모든 피드를 얻고 싶어하는지 여부에 달려 있습니다. –

+0

물론 귀하의 권리는 헤더에 나타나지 않을 것입니다. 우리는 단순히 모든 페이지를 크롤링하고 콘텐츠 형식을 찾고 있는지 확인하기 위해 콘텐츠를 구문 분석해야합니다. – user3279550