Konten praktis: Dapatkan nama Cina dan Inggris, nama Hong Kong dan Taiwan, sutradara, tahun rilis, klasifikasi film dan peringkat film TOP250 Douban, dan simpan datanya dalam database dan file. Tautannya adalah: https://movie.douban.com/top250?start=.
Kami telah memperkenalkan banyak cara untuk meng-crawl data halaman web sebelumnya. Mari kita crawl data di bawah ini.
importreimportrequestsfrombs4importBeautifulSoupforiinrange(0,2):headers={#Ini mensimulasikan browser untuk mengakses'agen-pengguna':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/52.0.2743.82Safari /537.36','Host':'movie.douban.com'}res='https://movie.douban.com/top250?start='+str(25*i)#25 kali r=requests.get( res,headers=headers,timeout=10)#Atur batas waktu sup=BeautifulSoup(r.text,html.parser)#Atur metode parsing, Anda juga dapat mencetak(sup)
Outputnya adalah:
<!DOCTYPEhtml><htmlclass=ua-windowsua-webkit><head><metacontent=text/html;charset=utf-8http-equiv=Content-Type/><metacontent=webkitname=renderer/><metacontent=alwaysname=referrer /><metacontent=ok0wCgT20tBBgo9_zat2iAcimtN4Ftf5ccsh092Xeywname=google-site-verification><title>250 Film Douban Teratas</title>.....</script><!--dae-web-movie--default-759d9f45f7- b69fc-- ><skrip>_SPLITTEST=''</script></link></link></body></html>
Di sini kita menggunakan fungsi mad5() dalam modul hashlib dengan Python. Kode pemeriksaannya adalah sebagai berikut.
MD5 adalah algoritma enkripsi yang umum digunakan di bidang keamanan komputer.
importhashlibdefvertifyupdate(html):md5=hashlib.md5()md5.update(html.encode(encoding='utf-8'))md5code=md5.hexdigest()print(md5code)old_html=''htlm_name='gp.txt 'ifos.path.exists(htlm_name):withopen(htlm_name,'r',encoding='utf-8')asf:old_html=f.read()ifmd5code==old_html:print('data tidak diperbarui')returnFalseelse: withopen(htlm_name,'w',encoding='utf-8')asf:f.write(md5code)print('data diperbarui')returnTrue
Fungsi ini perlu mengimpor modul hashlib, lalu membuat objek md5, meneruskan informasi halaman saat ini, dan melakukan operasi MD5 pada data masuk dengan menggunakan metode updata().
Kemudian gunakan pernyataan if untuk menentukan apakah file tersebut ada. Jika ada, baca kode MD5 di dalamnya, lalu tentukan apakah kedua kode MD5 itu sama. itu telah diperbarui dan kode MD5 baru diteruskan ke dalam file.
Crawling data adalah langkah awal yang perlu kita lakukan. Jika data sudah lama disimpan sebelum digunakan, maka perlu dideteksi. Ini adalah langkah yang relatif sederhana. Yang lebih merepotkan adalah bagaimana mendapatkan data yang lebih akurat bagian selanjutnya Mari kita lakukan analisis data.