Rumah  >  Artikel  >  Tutorial sistem  >  Perangkak Python menganalisis ulasan filem "Wolf Warrior".

Perangkak Python menganalisis ulasan filem "Wolf Warrior".

WBOY
WBOYke hadapan
2024-01-05 21:44:121025semak imbas
Pengenalan Sehingga 20 Ogos, hari ke-25 tayangannya, "Wolf Warrior II" telah mengutip lebih daripada 5 bilion yuan di box office, benar-benar menjadi satu-satunya filem Asia yang memasuki 100 box office terbaik dalam sejarah filem dunia. Artikel ini menggunakan perangkak Python untuk mendapatkan data, menganalisis ulasan filem Douban dan mencipta imej awan ulasan filem Douban. Sekarang, mari kita lihat subteks menarik yang tersembunyi dalam ulasan "Wolf Warrior II".

Perangkak Python menganalisis ulasan filem Wolf Warrior.

Selain daripada box office yang meletup, filem ini turut membangkitkan pelbagai emosi penonton malah berkata dengan kasar: Sesiapa yang berani mengkritik "Wolf Warrior II" sama ada terencat akal atau musuh awam.
Semua orang mempunyai ulasan bercampur-campur mengenai "Wolf Warrior II" dan telah meninggalkan komen tentang Douban untuk menyatakan pendapat mereka tentang filem itu. Walaupun pelbagai pendapat disiarkan dan media membuat kecoh, penonton masih tidak dapat membezakan pendapat mana yang lebih dipercayai.

Setakat ini, terdapat lebih daripada 150,000 komen Apabila anda membaca ulasan, anda mungkin melihat sebahagian besar daripada mereka untuk satu tempoh masa, sama ada memuji atau memperlekehkan komen. Oleh itu, sukar untuk mengetahui dengan menyemak imbas ulasan tentang pendapat keseluruhan semua orang tentang filem ini. Sekarang mari kita gunakan analisis data untuk melihat perkara menarik yang berlaku dalam ulasan ini!

Artikel ini menggunakan perangkak Python untuk mendapatkan data, menganalisis ulasan filem Douban dan mencipta imej awan ulasan filem Douban. Sekarang, mari kita lihat subteks menarik yang tersembunyi dalam ulasan "Wolf Warrior II".

Pemerolehan data

Artikel ini menggunakan data yang diperolehi oleh perangkak Python terutamanya menggunakan pakej permintaan dan semula pakej biasa Program ini tidak memproses kod pengesahan. Saya telah merangkak halaman web Douban sebelum ini, kerana kandungan yang dirangkak adalah kecil, saya tidak menemui kod pengesahan. Semasa saya menulis perangkak ini, saya fikir tidak akan ada kod pengesahan, tetapi apabila kira-kira 15,000 ulasan dirangkak, kod pengesahan muncul.
Kemudian saya berfikir, bukankah hanya 120,000? Paling banyak, saya hanya memasukkan kod pengesahan kira-kira sedozen kali, jadi saya tidak perlu berurusan dengan kod pengesahan. Tetapi apa yang berlaku seterusnya agak mengelirukan saya Apabila saya merangkak kira-kira 15,000 ulasan dan memasukkan kod pengesahan, saya fikir ia akan merangkak kepada kira-kira 30,000, tetapi selepas merangkak kira-kira 3,000, saya masih perlu memasukkannya kod pengesahan.

Kemudian ia terus berjalan seperti ini, tersandung Kadang-kadang ia mengambil masa yang lama untuk merangkak sebelum kod pengesahan diperlukan, dan kadangkala tidak. Tetapi akhirnya, komen itu merangkak. Kandungan yang dirangkak terutamanya termasuk: nama pengguna, sama ada anda telah melihatnya, bilangan bintang ulasan, masa ulasan, bilangan orang yang mendapati ia berguna dan kandungan ulasan. Berikut ialah kod crawler Python:
permintaan import<br> import semula<br> import panda sebagai pd<br> url_first='https://movie.douban.com/subject/26363254/comments?start=0'<br> head={'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/59.0.3071.109 Chrome/59.0.3071.109 Safari/537.36'}<br> html=requests.get(url_first,headers=head,cookies=cookies)<br> cookies={'cookie':'your own cookie'} #Iaitu, cari kuki yang sepadan dengan akaun anda<br> reg=re.compile(r'') #Halaman seterusnya<br> ren=re.compile(r'<span>(.*?)</span>.*?comment">(.*?).*?.*?<span .>(.*?).*?<span>(.*?)</span>.* ?title="(.*?)"></span>.*?title="(.*?)">.*?class=""> (.*?)n',re.S) #Ulasan dan kandungan lain <br> manakala html.status_code==200:<br> url_next='https://movie.douban.com/subject/26363254/comments'+re.findall(reg,html.text)[0]<br> zhanlang=re.findall(ren,html.text)<br> data=pd.DataFrame(zhanlang)<br> data.to_csv('/home/wajuejiprince/document/zhanlang/zhanlangpinglun.csv', header=False,index=False,mode='a+') #Tulis fail csv, 'a+' ialah mod tambahan<br> data=[]<br> zhanlang=[]<br> html=requests.get(url_next,cookies=cookies,headers=head)
Dalam kod di atas, sila tetapkan Ejen Pengguna, Kuki, laluan menyimpan CSV anda sendiri, dsb., dan simpan kandungan yang dirangkak ke dalam fail format CSV.

Pembersihan data

Artikel ini menggunakan bahasa R untuk memproses data Walaupun kami telah memberi perhatian yang besar kepada struktur kandungan yang dirangkak semasa merangkak, tidak dapat dielakkan bahawa terdapat beberapa nilai yang bukan yang kami inginkan. Contohnya, beberapa kandungan ulasan akan muncul dalam item pengulas, jadi masih perlu membersihkan data.

Muat pertama muat semua pakej yang anda ingin gunakan:
perpustakaan(data.jadual)<br> perpustakaan(plot)<br> perpustakaan(stringr)<br> perpustakaan(jiebaR)<br> perpustakaan(wordcloud2)<br> perpustakaan(magrittr)
Import data dan bersihkan:
dt

Analisis ringkas data

Mari kita lihat dahulu komen berdasarkan bilangan bintang:
plot_ly(my_dt[,.(.N),by=.(五星数)],type = 'bar',x=~五星数,y=~N)plot_ly(my_dt[,.(.N),by=.(nombor lima bintang)],type = 'bar',x=~nombor lima bintang,y=~N)
Perangkak Python menganalisis ulasan filem Wolf Warrior.

🎜

Bilangan bintang berbucu lima sepadan dengan 5 tahap, 5 bintang bermakna sangat disyorkan, 4 bintang bermakna disyorkan, 3 bintang bermakna okey, 2 bintang bermakna miskin, dan 1 bintang bermakna sangat miskin.
Jelas sekali daripada ulasan Pentagram bahawa kami mempunyai sebab untuk mempercayai bahawa sebahagian besar penonton akan berpuas hati dengan filem ini.

Pertama kita harus membahagikan komen:
wk <br> Paparan awan ulasan keseluruhan: <br> <code>perkataan%data.table()<br> nama set(perkataan,"N","pinshu")<br> perkataan[pinshu>1000] #Alih keluar perkataan frekuensi rendah (kurang daripada 1000)<br> wordcloud2(words[pinshu>1000], saiz = 2, fontFamily = "Microsoft Yahei", color = "random-light", backgroundColor = "grey")
Oleh kerana terdapat terlalu banyak data, komputer saya yang rosak membeku, jadi saya mengalih keluar perkataan dengan frekuensi lebih rendah daripada 1,000 semasa membuat carta awan. Keputusan imej awan adalah seperti berikut:
Perangkak Python menganalisis ulasan filem Wolf Warrior.

Secara keseluruhan, komen semua orang pada video ini cukup bagus! Topik seperti plot, aksi, dan patriotisme menjadi tumpuan perbincangan.

Kata kunci penilaian: Wu Jing, kepahlawanan peribadi, tema utama, China, halo protagonis, Setiausaha Dakang, sangat membakar.

Dapat dilihat bahawa "membakar" bukanlah sambutan yang paling popular selepas menontonnya.

Paparan imej awan dengan tahap komen yang berbeza

Tetapi bagaimana agaknya jika ulasan daripada orang yang mempunyai penilaian berbeza dipaparkan secara berasingan? Iaitu untuk mencipta carta awan untuk kandungan semakan lima tahap (sangat disyorkan, disyorkan, okey, lemah, sangat lemah), kodnya adalah seperti berikut (hanya tukar kod kepada "sangat disyorkan" kepada yang lain).

1. Awan ulasan pengulas yang sangat disyorkan

Perangkak Python menganalisis ulasan filem Wolf Warrior.

2. Awan ulasan pengulas yang disyorkan

Perangkak Python menganalisis ulasan filem Wolf Warrior.

3. Awan ulasan pengulas yang baik

Perangkak Python menganalisis ulasan filem Wolf Warrior.

4. Awan ulasan pengulas yang lemah

Perangkak Python menganalisis ulasan filem Wolf Warrior.

5. Awan ulasan pengulas buruk

Perangkak Python menganalisis ulasan filem Wolf Warrior.

Kesimpulan

Menilai daripada hasil segmentasi perkataan komen yang berbeza, semuanya mempunyai topik yang sama: patriotisme.

Bilangan topik patriotik dalam ulasan yang sangat disyorkan mungkin lebih tinggi daripada ulasan yang kurang disyorkan Dalam ulasan yang sangat disyorkan, orang lebih bersedia untuk membincangkan perkara selain daripada topik patriotik. Kebanyakan komen negatif adalah mengenai topik patriotik. Dan perkadaran mereka sangat menarik Daripada mereka yang sangat mengesyorkannya kepada mereka yang mengulas buruk, bahagian topik patriotik meningkat secara beransur-ansur.

Kita tidak boleh berfikir secara subjektif siapa yang betul atau salah Kita hanya boleh mengatakan bahawa mereka berdiri dari perspektif yang berbeza, jadi hasil yang mereka lihat juga berbeza. Apabila kita tidak bersetuju dengan orang lain, ia selalunya dari perspektif yang berbeza. Orang yang mempunyai komen yang tidak baik mungkin lebih memikirkan topik patriotik (ini hanya perbincangan tentang topik patriotik, bukan yang suka atau tidak suka negara)! !

Selepas analisis, sebab asas mengapa "Wolf Warrior 2" ini telah disokong oleh begitu ramai orang ialah ia telah mencapai adegan peringkat blockbuster Amerika dalam produksi yang tidak dimiliki oleh "Wolf Warrior 1", dan pada masa yang sama membangkitkan semangat patriotik dan membangkitkan hati rakyat.

Atas ialah kandungan terperinci Perangkak Python menganalisis ulasan filem "Wolf Warrior".. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:linuxprobe.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam