문제

저는 MediaWiki를 처음 접했는데 이제 약간의 문제가 생겼습니다.일부 Wiki 페이지의 제목이 있는데 다음을 사용하여 해당 페이지의 텍스트만 가져오고 싶습니다. api.php, 그러나 API에서 내가 찾은 것은 페이지의 Wiki 콘텐츠(wiki 마크업 포함)를 얻는 방법뿐입니다.이 HTTP 요청을 사용했습니다 ...

/api.php?action=query&prop=revisions&rvlimit=1&rvprop=content&format=xml&titles=test

하지만 Wiki 마크업 없이 텍스트 콘텐츠만 필요합니다.MediaWiki API로 이것이 가능합니까?

도움이 되었습니까?

해결책

API를 사용하여 텍스트 만 얻을 수 없다고 생각합니다.

저에게 효과가있는 것은 HTML 페이지 (브라우저에서 사용할 일반 URL을 사용하여)를 요청하고 컨텐츠 DIV에서 HTML 태그를 제거하는 것이 었습니다.

편집하다:

나는 좋은 결과를 얻었습니다 HTML 파서 자바를 위해. 주어진 div에서 HTML 태그를 제거하는 방법의 예가 있습니다.

다른 팁

사용 action=parse HTML을 얻으려면 :

/api.php action=parse&page=test

HTML에서 텍스트를 얻는 한 가지 방법은 브라우저에로드하고 노드를 걸어 JavaScript를 사용하여 텍스트 노드 만 찾는 것입니다.

API의 TextExtracts 확장은 사용자가 요청하는 작업을 수행합니다.사용 prop=extracts 정리된 응답을 얻으려면.예를 들어, 이 링크는 Stack Overflow 기사의 정리된 텍스트를 제공합니다..또한 좋은 점은 여전히 ​​섹션 태그가 포함되어 있어 기사의 개별 섹션을 식별할 수 있다는 것입니다.

내 답변에 표시되는 링크를 포함하기 위해 위 링크는 다음과 같습니다.

/api.php?format=xml&action=query&prop=extracts&titles=Stack%20Overflow&redirects=true

편집하다:Amr이 언급했듯이 TextExtracts는 확대 MediaWiki에 추가되므로 모든 MediaWiki 사이트에서 반드시 사용할 수 있는 것은 아닙니다.

첨가 ?action=raw MediaWiki 페이지가 끝나면 최신 컨텐츠를 원시 텍스트 형식으로 반환합니다. 예 :- https://en.wikipedia.org/wiki/main_page?action=raw

사용하여 API에서 텍스트 형식으로 Wiki 데이터를 얻을 수 있습니다. explaintext 매개 변수. 또한 많은 타이틀 정보에 액세스 해야하는 경우 모든 타이틀의 Wiki 데이터를 단일 통화로 얻을 수 있습니다. 파이프 문자를 사용하십시오 | 각 제목을 분리합니다. 예를 들어이 API 호출은 "Google"및 "Yahoo"페이지에서 데이터를 반환합니다.

http://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exlimit=max&explaintext&exintro&titles=Yahoo|Google&redirects=

매개 변수 :

  • explaintext: 제한된 HTML 대신에 추출물을 일반 텍스트로 반환합니다.
  • exlimit=max: 하나 이상의 결과를 반환합니다. 최대는 현재 20입니다.
  • exintro: 첫 번째 섹션 앞에 콘텐츠 만 반환합니다. 전체 데이터를 원한다면이를 제거하십시오.
  • redirects=: 리디렉션 문제를 해결하십시오.

이 질문에 오는 파이썬 사용자는 wikipedia 모듈 (문서):

import wikpedia
wikipedia.set_lang('de')
page = wikipedia.page('Wikipedia')
print(page.content)

섹션을 제외한 모든 서식 (==)는 줄무늬가 있습니다.

가능한 가장 깨끗한 페이지를 얻으려면 action = 렌더링을 사용하십시오.

https://wiki.eclipse.org/tip_of_the_day/eclipse_tips/now_where_was_i?action=render

vs

https://wiki.eclipse.org/tip_of_the_day/eclipse_tips/now_where_was_i

기호가없는 위키 페이지는 많은 경우에 실제로 의미가 없습니다.

원한다면 서식을 스스로 제거 할 수 있지만 프로세스에서 일부를 깨뜨릴 수 있습니다.

(검색 엔진과 같은 것을 생성하지 않는 한 텍스트 부품 만 필요하고 기호를 완전히 무시할 수 있습니다)

내용이 페이지로 가져온 후 한 가지를 수행 할 수 있습니다. PHP 기능을 사용할 수 있습니다. strip_tags() HTML 태그를 제거합니다.

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