0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでPDFファイルのリンクを検出する方法

Posted at

PythonでPDFファイルのリンクを検出する方法

Webアプリケーションやデータ収集の過程で、リンク先のファイルがPDFかどうかを事前に知る必要がある場合があります。ここでは、Pythonのrequestsライブラリを使用して、URLがPDFファイルを指しているかどうかを効率的に確認する方法について解説します。

必要なライブラリ

このスクリプトではrequestsライブラリを使用します。まだインストールされていない場合は、以下のコマンドでインストールできます。

pip install requests

スクリプトの解説

まず、チェックしたいPDFファイルのURLリストを生成します。以下のコードでは、特定の形式に基づいてURLを生成しています。

urls = [f'https://xxx.com/pdf/202404{x:04}01.pdf' for x in range(1000, 10000)]

次に、各URLに対してHTTP HEADリクエストを送信し、レスポンスヘッダーからContent-Typeを確認します。Content-Typeapplication/pdfを含む場合、そのURLはPDFファイルであると判断します。

import requests

for url in urls:
    try:
        response = requests.head(url, allow_redirects=True)
        content_type = response.headers.get('Content-Type', '')

        if 'application/pdf' in content_type:
            print(f'PDFファイルが見つかりました: {url}')
        else:
            print('NG', url)  # PDFファイルでない
    except Exception as e:
        print(f'エラーが発生しました: {e}')

注意点

  • requests.head() メソッドは、GETリクエストと同様にサーバーにリクエストを送るものの、ボディはダウンロードせずにヘッダー情報のみを取得します。これにより、リソースの消費を抑えることができます。
  • allow_redirects=True はリダイレクトを追跡するためのものです。一部のサーバーでは、リクエストがリダイレクトされる場合があり、その追跡を許可することで正確な情報を得られます。

まとめ

このスクリプトは、URLがPDFファイルかどうかを迅速に確認する簡単な方法を提供します。データ収集や自動化スクリプトで役立てることが期待されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?