Karena proyek kursus memerlukan penggunaan crawler CNKI, saya menemukan gudang unduhan CNKI CyrusRenty setelah mencari di GitHub, tetapi setelah mengkloningnya, saya menemukan bahwa itu tidak dapat digunakan, jadi saya memodifikasinya. Kecuali untuk mengunduh dokumen dan fungsi kode verifikasi, sisanya Pengujian fungsional tersedia.
Karena hanya mengakses jaringan kampus saja tidak bisa membuat Zhiwang mengidentifikasi sekolahnya (harus melalui VPN sekolah lain), saya tidak bisa menggunakan o(╥﹏╥)o untuk mendownload fungsi dokumen, jadi saya tidak bisa memodifikasinya. Saya belum menemukan kode verifikasi. Mencoba memastikan interval yang cukup saat merayapi setiap halaman seharusnya dapat menghindari masalah ini.
PS: Untuk masalah seperti NoneType, saya mengabaikannya dengan try catch yang kasar. Oleh karena itu, jika Anda melihat bahwa tidak ada data di baris Excel tertentu di baris Excel setelah perayapan selesai, hapus saja sebagai noise ~ Jika Anda sangat membutuhkan semua kolom yang lengkap, Ajukan masalah dan saya akan lihat apakah saya dapat membantu.
PS: Terkadang kesalahan berikut mungkin dilaporkan saat menjalankan crawler:
Dalam hal ini, harap matikan VPN proxy global, masukkan alamat CNKI di browser untuk melihat apakah Anda dapat masuk secara normal, lalu coba jalankan program berulang kali.
Jika Anda memiliki pertanyaan tentang proyek ini, Anda dapat menyampaikan masalahnya secara langsung. Saya harap saya dapat membantu Anda dengan kemampuan terbaik saya! Jika Anda memiliki kode yang lebih baik untuk dimasukkan, Feichang menyambut baik PR!
Konten berikut diambil dari penulis asli, dan saya memberi penghormatan kepada penulis asli∠(°ゝ°)
Proyek ini adalah perayap yang diimplementasikan berdasarkan Python3 untuk merayapi data CNKI. Proyek ini dapat dicari berdasarkan pencarian lanjutan CNKI dan menyediakan fungsi perayapan informasi terperinci seperti informasi dokumen dasar, pengunduhan dokumen, dan abstrak dokumen.
Proses implementasinya bisa dilihat di blog saya
Program ini berjalan sebagai berikut:
Informasi detail tabel excelnya adalah sebagai berikut:
Unduh caj sebagai berikut:
Menangkap data dengan mengirimkan paket parsing memiliki kinerja yang sedikit lebih tinggi dibandingkan menggunakan Selenium dan metode lainnya.
Anda dapat menggunakan fungsi pencarian lanjutan CNKI untuk mencari dan mengambil dokumen dengan lebih efisien.
Fungsi menangkap informasi rinci dan mengunduh dokumen caj dapat diaktifkan secara selektif sesuai dengan situasi anti-crawler jaringan dan CNKI.
Gunakan tabel excel untuk melihat dengan cepat abstrak literatur yang dibutuhkan dan informasi lainnya. Anda dapat mendownload secara selektif sesuai dengan link download yang disediakan oleh excel untuk mencegah jaringan CNKI dirayapi secara terbalik karena pengunduhan yang berlebihan.
tesserocr
digunakan di bagian pemrosesan kode verifikasi, tetapi efek verifikasi saat ini tidak terlalu baik, sehingga identifikasi manual kode verifikasi diaktifkan secara default.Jika
tesseract
tidak diinstal secara lokal, Anda dapat menginstalnya terlebih dahulu lalu menjalankanpip install tesserocr
. Atau beri komentar pada baris 15, 63, dan 64 dari fileCrackVerifyCode.py
lalu jalankan perintah instalasi.
instalasi pip -r persyaratan.txt
# Config.ini adalah file konfigurasi proyek # 0 ditutup 1 terbuka isDownloadFile = 1 # Apakah akan mendownload file isCrackCode=0 # Apakah akan secara otomatis mengenali kode verifikasi isDetailPage=0 # Apakah akan menyimpan detail dokumen ke excelisDownLoadLink # Apakah untuk menyimpan link download di excel stepWaitTime=5 # Jeda waktu untuk setiap halaman detail download dan crawl
Disarankan untuk tidak membuka halaman detail pengunduhan dan perayapan secara bersamaan, dan waktu jeda tidak boleh kurang dari 3 detik.
python run-spider.py
Setelah crawler selesai dijalankan, semua data akan disimpan di folder data. Folder data lama akan otomatis terhapus setiap kali program dijalankan kembali.
CNKI_download -- data 存放所有爬取数据 -- CAJs 存放所有下载的caj原文 -- xxxxxxx.caj -- xxxxxxx.caj -- Links.txt 所有爬取文献的下载链接 -- ReferenceList.txt 爬取文献简要信息 -- Reference_detail.xls 文献详细信息excel表
Premis untuk menjalankan proyek ini adalah bahwa komputer dapat mengakses CNKI melalui IP dan mengunduhnya (sebagian besar sekolah telah membeli database). Ketika saya akan selesai menulis, saya menemukan bahwa masih ada antarmuka lompat, dan akses jaringan publik akan melakukannya ditambahkan di masa mendatang.
Jika "akses ditolak oleh host jarak jauh" muncul, Anda dapat memperpanjang waktu jeda untuk setiap sesi dengan tepat.
Jika Anda menjalankannya sekali, ingatlah untuk menutup semua file di folder data sebelum menjalankannya kembali, jika tidak, kesalahan mungkin dilaporkan karena folder data tidak dapat dihapus.
Jika Anda hanya merayapi informasi tanpa mengunduhnya, Anda mungkin memasukkan kode verifikasi berulang kali (meskipun dimasukkan dengan benar) setelah menjalankan sekitar 1.000 dokumen. Belum diketahui apa alasannya
Selesaikan fungsi lain yang belum diterapkan untuk pencarian lanjutan.
Tambahkan informasi halaman awal perayapan yang ditentukan untuk merayapi lagi dari kesalahan terakhir.
Tambahkan lompatan jaringan publik ke antarmuka CNKI untuk memastikan bahwa pengguna yang tidak dapat masuk melalui IP masih dapat menggunakan crawler ini.
Buat kumpulan proxy untuk menerapkan akses IP proxy berdasarkan lompatan jaringan publik, mengurangi jumlah alamat IP yang diblokir oleh CNKI dan jumlah input kode verifikasi.
Menulis catatan proses implementasi dan analisis program.