コースプロジェクトではCNKIクローラーを使用する必要があるため、GitHubで検索してCyrusRentyのCNKIダウンロード倉庫を見つけましたが、クローンしたところ、使用できないことが判明したので、ドキュメントのダウンロードと検証コードの機能を除いて修正しました。残りの部分は機能テストが可能です。
学内ネットワークにアクセスするだけではZhiwangに学校を特定させることができないため(他校のVPNを経由する必要がある)、ドキュメント機能のダウンロードにo(╥﹏╥)oを使用することができないため、修正することができません。各ページをクロールするときに十分な間隔を確保することで、この問題を回避できるはずです。
追伸:NoneTypeなどの問題については雑なtry catchで無視したので、クロール完了後にExcelの特定の行にデータが無いのが見えたらノイズとして削除してください〜。すべてのフィールドを早急に記入する必要がある場合は、問題を提出してください。お手伝いできるかどうか確認させていただきます。
PS: クローラーの実行時に次のエラーが報告される場合があります。
この場合は、グローバル プロキシ VPN をオフにし、ブラウザに CNKI アドレスを入力して正常に入力できるか確認し、プログラムを何度も実行してみてください。
このプロジェクトについて質問がある場合は、直接問題を提起してください。できる限りお手伝いできることを願っています。組み込むべきより良いコードがある場合は、Feichang が PR を歓迎します。
以下の内容は原作者からの引用であり、原作者に敬意を表します∠(°ゝ°)
このプロジェクトは、CNKI データをクロールするために Python3 に基づいて実装されたクローラーです。CNKI の高度な検索に従って検索することができ、基本的な文書情報、文書のダウンロード、文書の要約などの詳細な情報のクロール機能を提供します。
導入プロセスは私のブログでご覧いただけます
プログラムは次のように実行されます。
詳細情報のExcelテーブルは次のとおりです。
以下のようにcajをダウンロードします。
解析パケットを送信してデータをキャプチャすると、Selenium やその他の方法を使用するよりもパフォーマンスがわずかに高くなります。
CNKI の高度な検索機能を使用すると、ドキュメントをより効率的に検索および取得できます。
詳細情報の取得および caj ドキュメントのダウンロード機能は、ネットワークおよび CNKI のクローラ対策状況に応じて選択的にオンにすることができます。
Excel テーブルを使用して、必要な文献要約やその他の情報をすばやく表示します。過度のダウンロードによる CNKI ネットワークの逆クロールを防ぐために、Excel によって提供されるダウンロード リンクに従って選択的にダウンロードできます。
認証コード処理部分には
tesserocr
使用していますが、現状では認証効果があまり良くないため、デフォルトで認証コードの手動識別が有効になっています。
tesseract
がローカルにインストールされていない場合は、最初に tesseract をインストールしてからpip install tesserocr
を実行できます。または、CrackVerifyCode.py
ファイルの 15、63、および 64 行目をコメント アウトして、インストール コマンドを実行します。
pip install -r 要件.txt
# Config.ini はプロジェクト設定ファイルです # 0 は閉じています、1 は開いています isDownloadFile = 1 # ファイルをダウンロードするかどうか isCrackCode=0 # 検証コードを自動的に認識するかどうか isDetailPage=0 # ドキュメントの詳細を ExcelisDownLoadLink に保存するかどうか # かどうかダウンロード リンクを Excel に保存するには stepWaitTime=5 # 各ダウンロードとクロールの詳細ページの一時停止時間
ダウンロード ページとクロールの詳細ページを同時に開かないことをお勧めします。また、一時停止時間は 3 秒以上にする必要があります。
Python run-spider.py
クローラーの実行が終了すると、すべてのデータがデータ フォルダーに保存され、プログラムが再実行されるたびに古いデータ フォルダーは自動的に削除されます。
CNKI_download -- data 存放所有爬取数据 -- CAJs 存放所有下载的caj原文 -- xxxxxxx.caj -- xxxxxxx.caj -- Links.txt 所有爬取文献的下载链接 -- ReferenceList.txt 爬取文献简要信息 -- Reference_detail.xls 文献详细信息excel表
プロジェクトを実行するための前提条件は、コンピュータが IP 経由で CNKI にアクセスし、それをダウンロードできることです (ほとんどの学校はデータベースを購入しています)。書き終えようとしていたときに、まだジャンプ インターフェイスが存在し、パブリック ネットワーク アクセスが可能であることに気付きました。将来追加される予定です。
「リモート ホストによってアクセスが拒否されました」と表示された場合は、各セッションの一時停止時間を適切に長くすることができます。
一度実行した場合は、再度実行する前に必ずデータ フォルダー内のすべてのファイルを閉じてください。閉じないと、データ フォルダーを削除できないため、エラーが報告される可能性があります。
情報をダウンロードせずにクロールするだけの場合、約 1,000 件のドキュメントを実行した後で、(正しく入力されたとしても) 確認コードを繰り返し入力する可能性があります。何が原因なのかはまだ不明です
高度な検索のためのその他の未実装機能を完成させます。
最後のエラーから再度クロールするために、指定されたクロール開始ページ情報を追加します。
CNKI インターフェイスにパブリック ネットワーク ジャンプを追加して、IP 経由でログインできないユーザーでもこのクローラを使用できるようにします。
プロキシ プールを作成して、パブリック ネットワーク ジャンプに基づいてプロキシ IP アクセスを実装し、CNKI によってブロックされる IP アドレスの数と検証コード入力の数を減らします。
プログラムの実装および分析プロセスの記録を作成します。