Rumah > Artikel > pembangunan bahagian belakang > Pertempuran crawler praktikal dalam Python: perangkak filem Maoyan
Dengan perkembangan pesat teknologi Internet, jumlah maklumat di Internet menjadi lebih besar dan lebih besar. Maoyan Movies, sebagai platform data filem domestik terkemuka, menyediakan pengguna dengan perkhidmatan maklumat filem yang komprehensif. Artikel ini akan memperkenalkan cara menggunakan Python untuk menulis perangkak filem Maoyan yang mudah untuk mendapatkan data berkaitan filem.
Perangkak, atau perangkak web, ialah program yang memperoleh data Internet secara automatik. Ia boleh mengakses laman web sasaran dan mendapatkan data melalui pautan di Internet, merealisasikan pengumpulan maklumat secara automatik. Python ialah bahasa pengaturcaraan yang berkuasa yang digunakan secara meluas dalam pemprosesan data, perangkak web, carta visual, dll.
Perangkak filem Maoyan dalam artikel ini akan dilaksanakan melalui permintaan Python dan perpustakaan BeautifulSoup. Permintaan ialah perpustakaan HTTP Python yang boleh menghantar permintaan halaman web dengan mudah, dan BeautifulSoup ialah perpustakaan penghuraian HTML Python yang boleh menghuraikan halaman HTML dengan cepat. Sebelum memulakan, anda perlu memasang kedua-dua perpustakaan ini.
2.1 Import perpustakaan
Buka editor Python dan buat fail Python baharu. Mula-mula anda perlu mengimport perpustakaan yang diperlukan:
import requests from bs4 import BeautifulSoup import csv
2.2 Buat pautan permintaan
Seterusnya buat pautan permintaan. Buka tapak web Filem Maoyan, cari pautan ke filem sasaran, dan salinnya. Di sini, ambil filem "Detektif Chinatown 3" sebagai contoh:
url = 'https://maoyan.com/films/1250952'
2.3 Hantar permintaan
Cipta pengepala dan tetapkan maklumat pengepala permintaan Maklumat pengepala secara amnya termasuk Ejen Pengguna, Perujuk, Kuki dan maklumat lain Mensimulasikan kaedah permintaan penyemak imbas sebenar yang mengakses halaman web. Di sini kita mengambil pelayar Chrome sebagai contoh. Kemudian gunakan perpustakaan permintaan untuk menghantar permintaan dan dapatkan kod HTML halaman web:
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get(url,headers=headers) html = response.text
2.4 Parse kod HTML
Tukar kod HTML yang diperolehi kepada objek BeautifulSoup, gunakan perpustakaan BeautifulSoup untuk menghuraikan kod HTML dan mendapatkan data sasaran. Memandangkan struktur kod HTML tapak web filem Maoyan agak kompleks, ia memerlukan pengetahuan yang mendalam tentang HTML dan BeautifulSoup.
soup = BeautifulSoup(html,'html.parser') movie_title = soup.find('h1',class_='name').text movie_info = soup.find_all('div',class_='movie-brief-container')[0] movie_type = movie_info.find_all('li')[0].text movie_release_data = movie_info.find_all('li')[2].text movie_actors = movie_info.find_all('li')[1].text movie_score = soup.find('span',class_='score-num').text
2.5 Menyimpan data
Selepas memproses halaman HTML, anda perlu menyimpan data yang diperoleh secara setempat. Pustaka csv Python digunakan di sini untuk menyimpan data. Pustaka csv boleh menukar data ke dalam format CSV untuk memudahkan pemprosesan seterusnya.
with open('movie.csv','w',newline='',encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile) writer.writerow(['电影名称',movie_title]) writer.writerow(['电影类型',movie_type]) writer.writerow(['上映日期',movie_release_data]) writer.writerow(['演员阵容',movie_actors]) writer.writerow(['豆瓣评分',movie_score])
Keseluruhan kod adalah seperti berikut:
import requests from bs4 import BeautifulSoup import csv url = 'https://maoyan.com/films/1250952' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } response = requests.get(url,headers=headers) html = response.text soup = BeautifulSoup(html,'html.parser') movie_title = soup.find('h1',class_='name').text movie_info = soup.find_all('div',class_='movie-brief-container')[0] movie_type = movie_info.find_all('li')[0].text movie_release_data = movie_info.find_all('li')[2].text movie_actors = movie_info.find_all('li')[1].text movie_score = soup.find('span',class_='score-num').text with open('movie.csv','w',newline='',encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile) writer.writerow(['电影名称',movie_title]) writer.writerow(['电影类型',movie_type]) writer.writerow(['上映日期',movie_release_data]) writer.writerow(['演员阵容',movie_actors]) writer.writerow(['豆瓣评分',movie_score])
Artikel ini memperkenalkan cara menggunakan permintaan Python dan perpustakaan BeautifulSoup untuk melaksanakan filem Maoyan crawler. Dengan menghantar permintaan rangkaian, menghuraikan kod HTML, menyimpan data dan langkah lain, kami boleh mendapatkan data berkaitan filem sasaran dan menyimpannya secara setempat dengan mudah. Teknologi perangkak web mempunyai nilai aplikasi yang luas dalam pengumpulan data, perlombongan data, dll. Kami boleh meningkatkan tahap teknikal kami melalui pembelajaran berterusan dan terus meneroka dalam amalan.
Atas ialah kandungan terperinci Pertempuran crawler praktikal dalam Python: perangkak filem Maoyan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!