


Penggunaan praktikal perangkak dalam Python: perangkak buku Douban
Python ialah salah satu bahasa pengaturcaraan yang paling popular hari ini dan telah digunakan secara meluas dalam pelbagai bidang, seperti sains data, kecerdasan buatan, keselamatan rangkaian, dsb. Antaranya, Python berprestasi baik dalam bidang perangkak web Banyak syarikat dan individu menggunakan Python untuk pengumpulan dan analisis data. Artikel ini akan memperkenalkan cara menggunakan Python untuk merangkak maklumat buku Douban dan membantu pembaca mempunyai pemahaman awal tentang kaedah pelaksanaan dan teknologi perangkak web Python.
Pertama sekali, untuk perangkak maklumat buku Douban, kita perlu menggunakan dua perpustakaan penting dalam Python: urllib dan beautifulsoup4. Antaranya, perpustakaan urllib digunakan terutamanya untuk permintaan rangkaian dan pembacaan data, manakala perpustakaan beautifulsoup4 boleh digunakan untuk menghuraikan dokumen berstruktur seperti HTML dan XML untuk mengekstrak maklumat yang diperlukan. Sebelum menggunakan perpustakaan ini, kita perlu memasangnya terlebih dahulu Gunakan arahan pip untuk menyelesaikan pemasangan. Selepas pemasangan selesai, kami boleh memulakan pertempuran sebenar kami.
- Tentukan sasaran merangkak
Apabila menggunakan Python untuk merangkak, anda perlu menjelaskan sasaran merangkak terlebih dahulu. Untuk artikel ini, matlamat kami adalah untuk merangkak maklumat asas buku Douban, seperti tajuk buku, pengarang, penerbit, tarikh penerbitan, penilaian, dsb. Selain itu, kita juga perlu merangkak berbilang halaman maklumat buku.
- Analisis struktur HTML
Selepas menentukan sasaran merangkak, kami perlu menganalisis lagi struktur HTML Buku Douban untuk menentukan lokasi dan ciri-ciri maklumat yang diperlukan. Kami boleh menggunakan alat pembangun yang disertakan dengan penyemak imbas seperti Chrome atau Firefox untuk melihat kod sumber halaman. Dengan memerhatikan struktur HTML, kita boleh mencari teg dan atribut yang perlu dirangkak, dan kemudian menulis kod Python untuk melaksanakannya.
- Menulis kod
Seterusnya, kami menulis kod perangkak buku Douban dalam Python. Inti kod ialah:
- menghantar permintaan rangkaian dan mendapatkan halaman HTML
- menghuraikan dokumen HTML dan mengekstrak maklumat yang diperlukan; data.
- Berikut ialah kod lengkap:
import urllib.request from bs4 import BeautifulSoup url = 'https://book.douban.com/top250' books = [] def get_html(url): headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'} req = urllib.request.Request(url, headers=headers) response = urllib.request.urlopen(req) html = response.read().decode('utf-8') return html def parse_html(html): soup = BeautifulSoup(html,'html.parser') book_list_soup = soup.find('div', attrs={'class': 'article'}) for book_soup in book_list_soup.find_all('table'): book_title_soup = book_soup.find('div', attrs={'class': 'pl2'}) book_title_link = book_title_soup.find('a') book_title = book_title_link.get('title') book_url = book_title_link.get('href') book_info_soup = book_soup.find('p', attrs={'class': 'pl'}) book_info = book_info_soup.string.strip() book_rating_num_soup = book_soup.find('span', attrs={'class': 'rating_nums'}) book_rating_num = book_rating_num_soup.string.strip() book_rating_people_num_span_soup = book_soup.find('span', attrs={'class': 'pl'}) book_rating_people_num = book_rating_people_num_span_soup.string.strip()[1:-4] book_author_and_publish_soup = book_soup.find('p',attrs={'class':'pl'}).next_sibling.string.strip() book_author_and_publish = book_author_and_publish_soup.split('/') book_author = book_author_and_publish[0] book_publish = book_author_and_publish[-3] book_year = book_author_and_publish[-2] books.append({ 'title': book_title, 'url': book_url, 'info': book_info, 'author':book_author, 'publish':book_publish, 'year':book_year, 'rating_num':book_rating_num, 'rating_people_num':book_rating_people_num }) def save_data(): with open('douban_top250.txt','w',encoding='utf-8') as f: for book in books: f.write('书名:{0} '.format(book['title'])) f.write('链接:{0} '.format(book['url'])) f.write('信息:{0} '.format(book['info'])) f.write('作者:{0} '.format(book['author'])) f.write('出版社:{0} '.format(book['publish'])) f.write('出版年份:{0} '.format(book['year'])) f.write('评分:{0} '.format(book['rating_num'])) f.write('评分人数:{0} '.format(book['rating_people_num'])) if __name__ == '__main__': for i in range(10): start = i*25 url = 'https://book.douban.com/top250?start={0}'.format(start) html = get_html(url) parse_html(html) save_data()
Analisis kod:
Pertama, kami mentakrifkan url tapak web utama dan buku senarai kosong (digunakan untuk menyimpan buku maklumat). Seterusnya, kami menulis fungsi get_html untuk menghantar permintaan dan mendapatkan halaman HTML. Dalam fungsi ini, kami menetapkan pengepala permintaan untuk mensimulasikan penyemak imbas menghantar permintaan untuk mengelak daripada disekat oleh tapak web. Kami menggunakan kaedah Permintaan perpustakaan urllib untuk merangkum pengepala permintaan dan URL ke dalam objek, kemudian menggunakan kaedah urlopen perpustakaan urllib untuk menghantar permintaan rangkaian dan mendapatkan halaman, dan akhirnya menggunakan kaedah baca dan nyahkod untuk menukar kandungan halaman ke dalam rentetan utf-8.
Kami menulis fungsi parse_html untuk menghuraikan dokumen HTML dan mengekstrak maklumat yang diperlukan. Dalam fungsi ini, kami menggunakan kaedah find dan find_all pustaka beautifulsoup4 untuk mencari teg dan atribut yang memenuhi keperluan dalam halaman HTML. Khususnya, dengan memerhatikan struktur HTML buku Douban, kami menemui teg jadual setiap buku dan tajuk buku, pautan, maklumat, penilaian dan maklumat lain yang sepadan, dan menulis kod untuk mengekstrak data ini. Antaranya, kami menggunakan kaedah jalur dan belah untuk memproses rentetan untuk mengalih keluar aksara ruang putih berlebihan dan membelah rentetan.
Akhir sekali, kami menulis fungsi save_data untuk menyimpan maklumat buku yang diekstrak ke dalam fail setempat. Dalam fungsi ini, kami menggunakan fungsi terbina dalam Python terbuka untuk membuka fail teks, menulis kandungan fail dalam mod tulis dan menggunakan kaedah format untuk memformat maklumat berkaitan setiap buku ke dalam rentetan dan menulisnya pada fail. Ambil perhatian bahawa kita perlu menambah pengekodan='utf-8' selepas nama fail untuk memastikan bahawa kandungan fail tidak akan bercelaru.
Dalam program utama, kami menggunakan gelung for untuk merangkak 250 buku pertama di Douban Books. Untuk melakukan ini, kita perlu merangkak 25 buku setiap halaman, dan merangkak 10 halaman secara keseluruhan. Dalam setiap gelung, kami mengira url yang diperlukan berdasarkan nombor halaman semasa dan memanggil fungsi get_html untuk mendapatkan halaman HTML. Seterusnya, kami menghantar halaman ke fungsi parse_html, yang menghuraikan halaman dan mengekstrak maklumat yang diperlukan. Akhir sekali, kami memanggil fungsi save_data untuk menyimpan semua maklumat buku ke fail setempat.
Jalankan kod- Selepas melengkapkan penulisan kod, kita boleh memasuki direktori di mana kod itu terletak dalam baris arahan (sistem Windows) atau terminal (MacOS atau sistem Linux), dan Jalankan arahan skrip perangkak python3 name.py untuk menjalankan perangkak web Python. Semasa program berjalan, kita boleh memerhati maklumat output program untuk menentukan sama ada program dilaksanakan dengan betul. Selepas program dilaksanakan, kami boleh menyemak fail tempatan douban_top250.txt untuk mengesahkan sama ada data telah berjaya disimpan.
Ringkasan
Melalui pengenalan artikel ini, kami mempunyai pemahaman awal tentang kaedah dan teknologi pelaksanaan perangkak web Python. Khususnya, kami menggunakan perpustakaan urllib dan beautifulsoup4 dalam Python untuk menulis program Python untuk merangkak maklumat Buku Douban berdasarkan struktur HTML tapak web Buku Douban dan berjaya melaksanakan pengumpulan dan penyimpanan data. Selain itu, dalam aplikasi praktikal, kita perlu memahami beberapa langkah berjaga-jaga untuk perangkak web, seperti tidak menghantar permintaan ke tapak web yang sama terlalu kerap untuk mengelakkan alamat IP disekat.
Atas ialah kandungan terperinci Penggunaan praktikal perangkak dalam Python: perangkak buku Douban. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

Kod VS boleh digunakan untuk menulis Python dan menyediakan banyak ciri yang menjadikannya alat yang ideal untuk membangunkan aplikasi python. Ia membolehkan pengguna untuk: memasang sambungan python untuk mendapatkan fungsi seperti penyempurnaan kod, penonjolan sintaks, dan debugging. Gunakan debugger untuk mengesan kod langkah demi langkah, cari dan selesaikan kesilapan. Mengintegrasikan Git untuk Kawalan Versi. Gunakan alat pemformatan kod untuk mengekalkan konsistensi kod. Gunakan alat linting untuk melihat masalah yang berpotensi lebih awal.

Kod VS boleh dijalankan pada Windows 8, tetapi pengalaman mungkin tidak hebat. Mula -mula pastikan sistem telah dikemas kini ke patch terkini, kemudian muat turun pakej pemasangan kod VS yang sepadan dengan seni bina sistem dan pasangnya seperti yang diminta. Selepas pemasangan, sedar bahawa beberapa sambungan mungkin tidak sesuai dengan Windows 8 dan perlu mencari sambungan alternatif atau menggunakan sistem Windows yang lebih baru dalam mesin maya. Pasang sambungan yang diperlukan untuk memeriksa sama ada ia berfungsi dengan betul. Walaupun kod VS boleh dilaksanakan pada Windows 8, disyorkan untuk menaik taraf ke sistem Windows yang lebih baru untuk pengalaman dan keselamatan pembangunan yang lebih baik.

Sambungan kod VS menimbulkan risiko yang berniat jahat, seperti menyembunyikan kod jahat, mengeksploitasi kelemahan, dan melancap sebagai sambungan yang sah. Kaedah untuk mengenal pasti sambungan yang berniat jahat termasuk: memeriksa penerbit, membaca komen, memeriksa kod, dan memasang dengan berhati -hati. Langkah -langkah keselamatan juga termasuk: kesedaran keselamatan, tabiat yang baik, kemas kini tetap dan perisian antivirus.

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

PHP berasal pada tahun 1994 dan dibangunkan oleh Rasmuslerdorf. Ia pada asalnya digunakan untuk mengesan pelawat laman web dan secara beransur-ansur berkembang menjadi bahasa skrip sisi pelayan dan digunakan secara meluas dalam pembangunan web. Python telah dibangunkan oleh Guidovan Rossum pada akhir 1980 -an dan pertama kali dikeluarkan pada tahun 1991. Ia menekankan kebolehbacaan dan kesederhanaan kod, dan sesuai untuk pengkomputeran saintifik, analisis data dan bidang lain.

Dalam kod VS, anda boleh menjalankan program di terminal melalui langkah -langkah berikut: Sediakan kod dan buka terminal bersepadu untuk memastikan bahawa direktori kod selaras dengan direktori kerja terminal. Pilih arahan Run mengikut bahasa pengaturcaraan (seperti python python your_file_name.py) untuk memeriksa sama ada ia berjalan dengan jayanya dan menyelesaikan kesilapan. Gunakan debugger untuk meningkatkan kecekapan debug.
