Versi sederhana dari pencarian situs
Berdasarkan mesin pencari berita kampus
- Gagasan Implementasi: Merayap semua berita dari jaringan kampus, menyimpannya di database MySQL, kemudian membagi judul dalam database, dan kemudian mengubah hasil segmentasi kata menjadi tabel indeks. Masukkan konten kueri, segmen konten kueri, mencocokkan daftar Segmentasi Kata dalam database, memetakan URL yang sesuai, dan kemudian mengembalikan hasilnya.
Lingkungan pengembangan
Perpustakaan Ketergantungan
- Pymysql: Antarmuka antara Python dan MySQL
- Jieba: Perpustakaan Python untuk kata participle
Arsitektur keseluruhan
Beberapa crawler menggunakan kerangka kerja Scrapy untuk merangkak jaringan berita Universitas Teknik dan Teknologi Liaoning. Deskripsi bagian utama dari kerangka kerja gesekan:
- File Intuspider.py: Proses ekstraksi utama informasi halaman web, menggunakan panggilan loop bersarang, menggunakan algoritma kedalaman-first untuk melakukan panggilan rekursif, mem-parsing semua halaman berita HTML dari Liaoning University of Technology, mengekstraksi informasi yang diperlukan (judul, URL), dan menyimpannya ke objek item. Metode parsing yang digunakan oleh crawler adalah xpath
- items.py mendefinisikan objek yang akan dirangkak.
- Pipeline.py menyimpan objek yang disimpan ke dalam database MySQL melalui antarmuka MySQL. File lainnya adalah beberapa file konfigurasi, dan hampir tidak ada perubahan, dan lokasi perubahan telah dikomentari. Bagian perayap berakhir di sini.
Gagasan keseluruhan mesin pencari: Participle judul yang disimpan dalam database dan membuat indeks kata kunci. Kedua, berdasarkan frekuensi kata kunci, tabel indeks kata kunci dan kejadian ditetapkan. Deskripsi Dokumen Utama:
- Intu.py: pembangunan tabel basis data, ambil data yang dirangkak oleh crawler, melakukan segmentasi kata, dan menyimpannya di tabel maju dan mundur masing -masing.
- Forward.py: Tabel Forward, Tentukan komponen kelas
forwardIndexTableItem , tentukan konten array dalam tabel, dan di kelas Forward Forward forwardIndexTable , judul participle dilakukan dan disimpan dalam tabel database. - Lexicon: Segmentasi Kata, Tentukan Operasi: Dapatkan ID melalui kata -kata, dapatkan kata -kata melalui ID, buat daftar segmentasi kata, dan muat daftar segmentasi kata;
- Daftar mundur: Tabel mundur, memproses data di tabel depan.
- LinesEngine: Kelas mesin pencari, jalankan file ini secara langsung, Anda dapat mengembalikan judul dan URL yang sesuai dengan menanyakan kata -kata yang Anda masukkan. Inti adalah untuk membagi konten input, dan kemudian mengurutkan judul yang sesuai sesuai dengan kata kunci, dan kemudian mencetak 10 baris pertama sesuai dengan jumlah kata kunci hit.
Catatan dan Kekurangan:
- Pertama -tama, crawler statis. Jika ada judul duplikat dalam database, memasukkan data akan gagal. Tabel perlu dibersihkan dan dirangkak kembali.
- Konten database diperbaiki.
- Tingkat pencarian terkait dengan keakuratan Participle Stutter. Saat merangkak, tata letak halaman web sangat jelas, dan berita yang saya rayam tidak digandakan.
- Di masa depan, Anda dapat menambahkan halaman web, mencari melalui situs web, dan membuat antarmuka web.
- Perayap dan pencarian independen, dan jaringan berita lainnya juga dapat dirangkak, hanya perlu bagian crawler.
Cara menggunakan
- Persiapan Lingkungan Ketergantungan: Lingkungan Python3, Kerangka Kerja Scrapy, Instalasi Pymysql, Instalasi Perpustakaan Jieba Word, Instalasi MySQL, Database MyTable MySQL MySQL, dan Tabel Data Intu.
- Klon pertama git ke direktori yang ditentukan
- Buka konsol di bawah Windows, masukkan folder yang sesuai, dan masukkan
scrapy crawl Intu - Tunggu hasil merangkak, dan merangkak sudah berakhir.
- Jalankan file seachengine.py dan masukkan konten teks yang Anda minta