Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pertempuran crawler praktikal dalam Python: perangkak filem Maoyan

Pertempuran crawler praktikal dalam Python: perangkak filem Maoyan

WBOY
WBOYasal
2023-06-10 12:27:262870semak imbas

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.

  1. Ikhtisar Crawler

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.

  1. Pelaksanaan crawler

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])
  1. Ringkasan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn