サイトを解析してPDFを取得する


2

サイトにあるすべてのPDFファイルをダウンロードする必要があります。問題は、どのページにもリストされていないため、サイトをクロールしてファイルをダウンロードするため、または少なくともファイルのリストを取得するために何か(プログラム?フレームワーク?)が必要なことです。WinHTTrackを試しましたが、動作させることができませんでした。Firefox用DownThemAllは、複数のページまたはサイト全体をクロールしません。私はおそらくこの問題を最初に提示することはできなかったので、そこに解決策があることを知っています。あなたは何をお勧めします?

回答:


4

サイトはGoogleによってインデックス化されていますか?検索するだけsite:www.example.com filetype:pdfで、そのサイトでインデックス付けされたすべてのPDFファイルが返されます。

例: site:en.wikipedia.org filetype:pdf


別の方法は、wgetを使用することです。wgetは、* nixコマンドラインツールですが、Windowsで使用できます。再帰モードを使用し、pdfファイルのみを保存するように指定すると、サイトを横断してすべてのPDFを見つけることができます。

wget.exe -r -A pdf -np http://www.example.com/ example.comからすべてのPDFファイルを再帰的にダウンロードし、親ディレクトリに移動しようとしません(特定のサブディレクトリで開始する場合にのみ関連します)。

特定のファイルタイプでWGETを使用して実際にテストしたことはありませんが、以前に再帰的なダウンロードを行ったことがあり、正常に機能しているので、試してみてください。


これは素晴らしいです、wgetを使用したいと思います。問題は、問題のサイトがDrupalベースのサイトであり、PDFへのリンクが.pdfではなく数字で終わることです。そのため、サイト上のすべてのインクのファイルタイプを手動でチェックするようにwgetに指示する方法がない限り、このwgetコマンドは機能しません。--html-extensionのようなものかもしれませんが、PDF用ですか?linux.die.net/man/1/wgetで wgetのドキュメントを調べましたが、そのようなものは見当たりませんでした。また、このサイトはGoogleによるインデックスが不十分であるため、すべてを取得できるようにクロールを実行したいと思います。
user43112

2

Javaに精通している場合はJava HTMLパーサー、Pythonに精通している場合はBeautifulSoupを使用することをお勧めします。

次に行う再帰的なメソッドを書く:

  1. タグ「a」および属性「href」を持つページ上のすべてのリンクを見つけて値を取得し、リンクをドメイン名と比較します。
  2. リンクPDFのチェック拡張機能の有無
  3. このリンクにpdf拡張機能がある場合は、ダウンロードするか、このリンクがドメインと一致する場合にコンテンツを取得し、同じ操作を再度実行します。

そんな感じ。


SuperUserへようこそ。さらなる洞察を提供できれば、古い質問に追加の回答を投稿しても問題はありません。
デアホッホシュプラーラ

thnx、オリバー。だから私はそれらを見つけた場合は前に同じスクリプトを書くだけです。もしそうならそれを添付することができますが、時々人々は自分で問題を解決したいです;)ほとんどアドバイスなしで
石川良

-1

これは最も簡単な解決策ではありませんが、私のお気に入りです。

独自のクモを書いてください!サイトを横断し、ページを解析し、必要なファイルを探します。クモを書くことには多くの興味深い課題があり、私はそれがとても楽しいと感じました。

これはarcher1742が探していたものではないかもしれませんが、誰か(おそらくarcher1742も)がこのソリューションを望んでいると確信しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.