2011-11-11 6 views
0

해당 링크가 올바른지 여부를 확인하려는 PDF 파일이 있습니다. 적절한 의미로 - 지정된 모든 URL은 웹 페이지에 연결되어 있으며 아무 것도 손상되지 않습니다. 간단한 유틸리티 나 스크립트를 쉽게 찾을 수 있습니다.PDF 파일의 링크를 확인하는 방법

예 :

$ testlinks my.pdf 
There are 2348 links in this pdf. 
2322 links are proper. 
Remaining broken links and page numbers in which it appears are logged in brokenlinks.txt 

나는 그런 일이 있는지 여부의 아무 생각, 그래서 또한 유래에서 검색 & 봤이 없습니다. 그러나 아직 유용한 것을 찾지 못했습니다. 그래서 누구든지 그것에 대해 어떤 생각을 갖고 싶습니다!

업데이트 : 질문을 명확히하기 위해.

답변

4

내가 먼저 리눅스 명령 줄 유틸리티 'pdftotext'를 사용하는 것이 좋습니다 - 당신은 사람 페이지 찾을 수 있습니다

pdftotext man page

유틸리티는 PDF 처리 도구에서 xpdf 컬렉션의 일부입니다, 사용할 수를 대부분의 리눅스 배포판에서. http://foolabs.com/xpdf/download.html을 참조하십시오.

한번 설치되면, 당신은 pdftotext을 통해 PDF 파일을 처리 할 수 ​​:

pdftotext file.pdf file.txt 

일단 처리, HTTP URL에 대한 결과 텍스트 파일을 검색하고, LWP::Simple를 사용하여 검색하는 간단한 펄 스크립트. LWP :: SIMPLE->의 get ('HTTP : //는 ...') : 당신이 원하는 것을 달성 할

use LWP::Simple; 
$content = get("http://www.sn.no/"); 
die "Couldn't get it!" unless defined $content; 

, 내가 생각하는 당신이 코드 등으로 URL을 확인하실 수 있습니다 . 이 HTTP URL과 일치하는 정규 표현식을 작성하는 방법에 많은 자원이있다, 그러나 아주 간단한 하나는 다음과 같이 보일 것이다 :

m/http[^\s]+/i 

"HTTP 한 다음 이상하지 않은 공백 문자"- URL이있는 가정 속성 URL 인코딩 됨.

+0

, 나는이 유틸리티로 내 자신의 스크립트를 작성합니다! – user379997

1

질문에 두 줄의 문의가 있습니다.

링크에 http : // 및 유효한 TLD 코드와 같은 주요 정보가 포함되어 있는지 확인 하시겠습니까? 그렇다면 URL을 다루는 기존 정규식이 많이 포함 된 regexlib.com을 정규식 전문가가 들러 보거나 확인해보십시오.

또는 웹 사이트가 존재하는지 확인하고 싶다면 Python + Requests을 스크립팅하여 웹 사이트가 있는지 확인하고 오류 코드를 반환하지 않는 것이 좋습니다.

저는 현재 직장에서 거의 동일한 목적으로 착수하고 있습니다. 자동으로 처리되도록 약 54k 개의 링크가 있습니다. 에 의해

+0

내 질문에 링크가 끊어지지 않았는지 확인하는 것입니다! 감사. 질문을 올바르게 업데이트했습니다. – user379997

+0

깨진 링크가 도달 할 때 잘못된 http 구문 또는 HTTP 오류로 정의 되었습니까? –

+0

http 오류 - 해당 페이지 오류가 없습니다! – user379997

0
  1. 수집 링크 : API를 사용하거나 텍스트로 덤프하고 결과를 linkifying, 또는 HTML PDFMiner로 저장
    열거 링크.

  2. 확인 요청을하십시오.
    필요에 따라 많은 옵션이 있습니다.

0

당신은이 끊어진 하이퍼 링크의 PDF 문서 및 검사를 구문 분석하는 간단한 도구입니다 pdf-link-checker

PDF 링크 검사기를 사용할 수 있습니다. 이는 주어진 문서에서 발견 된 각 링크에 단순한 HTTP 요청을 보냄으로써이를 수행합니다.

GNU/리눅스에 설치하려면 :

pip install pdf-link-checker 

불행하게도, 하나 개의 의존성 (pdfminer)이 끊어집니다. 그것을 고치기 :

pip uninstall pdfminer 
pip install pdfminer=20110515