Penulis: saus wortel
Akun publik WeChat: Analisis data antropologi ekonomi (ID: DAT-2017)
Selamat datang untuk mencetak ulang, harap sebutkan sumbernya.
Artikel ini memiliki total 1640 kata, disarankan untuk dibaca 6 menit.
Artikel ini merangkak data lebih dari 6000 tempat pemandangan indah di situs web Qunar untuk meringkas dan menganalisis situasi perjalanan pada Hari Nasional untuk Anda.
Saat pergi bermain, ada orang, orang, orang, orang ... kemanapun Anda pergi. Apakah gambaran berikut muncul di benak Anda:
Untuk memfasilitasi pilihan perjalanan setiap orang, editor telah merayapi data lebih dari 6000 tempat pemandangan di Qunar.com, termasuk data tempat pemandangan, popularitas, penjualan, dll., Dan menggabungkannya ke dalam panduan referensi perjalanan ini.
reptilPerayap terus menggunakan selenium favorit editor terbaru. Untuk penggunaan, lihat "Selenium Perayap: Contoh Daftar Film Mata Kucing". Buka situs web GoWhere, klik kanan dan analisis halaman web.
Data yang kami butuhkan sangat jelas:
Tidak banyak bicara, selama Anda menemukan informasi yang Anda inginkan, kodenya sangat sederhana.
1dari tqdm import tqdm 2 impor waktu 3dari driver web selenium import 4dari selenium.common.exceptions, impor TimeoutException, WebDriverException Impor panda sebagai pd 6 impor numpy sebagai np 7posisi = 89 nama, tingkat, panas, alamat, num = ,,,, 10def get_one_page (kunci, halaman): 11 mencoba: 12 #Buka jendela browser 13 option_chrome = webdriver.ChromeOptions () 14 option_chrome.add_argument ('- headless') 1516 driver = webdriver.Chrome (chrome_options = option_chrome) 17 kali tidur (1) 1819 url = " 20 driver.get (url) 21 infor = driver.find_elements_by_class_name ("sight_item") 22 untuk i dalam jangkauan (len (infor)): 23 # Dapatkan nama atraksi 24 name.append (infor .find_element_by_class_name ("nama"). teks) 25 #Dapatkan penilaian objek wisata 26 mencoba: 27 level. Tambahkan (infor .find_element_by_class_name ("level"). teks) 28 kecuali: 29 level.append ("") 30 #Dapatkan popularitas tempat-tempat indah 31 hot.append (infor .find_element_by_class_name ("product_star_level"). teks) 32 # Dapatkan alamat objek wisata 33 address.append (infor .find_element_by_class_name ("area"). teks) 34 #Dapatkan penjualan tempat-tempat indah 35 mencoba: 36 num.append (infor .find_element_by_class_name ("hot_num"). teks) 37 kecuali: 38 nomor. Tambahkan (0) 3940 supir.quit () 41 kembali 42 kecuali TimeoutException atau WebDriverException: 43 kembali get_one_page () 4445untuk memasukkan tqdm (posisi): 46 cetakan ("Merayapi {}". Format (kunci)) 47 # ambil 10 halaman pertama 48 untuk halaman dalam kisaran (1,14): 49 cetak ("Crawling page {}". Format (halaman)) 50 get_one_page (kunci, halaman) 5152sight = {'name': name, 'level': level, 'hot': hot, 'address': address, 'num': num} 53sight = pd.DataFrame (penglihatan, kolom =) 54sight.to_csv ("sight.csv", encoding = "utf_8_sig")Artikel ini hanya merayapi data domestik. Karena banyaknya tempat pemandangan, hanya 13 halaman pertama dari setiap provinsi yang diambil. Jumlah tempat pemandangan adalah 6.630.
visualisasi data30 tempat pemandangan terpopuler:
Panda raksasa layak menjadi harta nasional, dan yang paling populer adalah itu. Diikuti oleh Kota Terlarang, Kebun Binatang Zhengzhou, Gunung Emei, Prajurit Terakota dan Kuda Qin Shihuang dan seterusnya. Karena saya belum ke banyak tempat untuk bermain, saya tidak tahu kenapa Zhengzhou Zoo bisa menduduki peringkat 3. Kalau Anda tahu, bisa ceritakan ciri-cirinya?
Provinsi dan peringkat:
Sejujurnya, skema warna gambar ini sangat jelek, terutama karena editornya terlalu malas dan tidak ingin mencocokkan warna dengan benar.
.
Peta panas:
Peta panas digambar secara terpisah menurut provinsi dan kota, diikuti oleh dua jenis peta berdasarkan penjualan dan panas. Di sini, artikel "Python memanggil API Peta AutoNavi untuk mewujudkan konversi garis lintang dan bujur dan visualisasi peta" digunakan untuk menyelesaikan dengan memanggil API Peta AutoNavi.
Yang pertama adalah popularitas provinsi dan tempat-tempat indah:
Lalu ada provinsi dan penjualan:
Berikutnya adalah popularitas kota dan tempat pemandangan:
Terakhir, penjualan di kota-kota dan tempat-tempat indah:
Perlu dicatat bahwa kisaran panas kota dan peta penjualan tidak jelas. Alasannya adalah volume penjualan antara tempat-tempat indah sangat berbeda. Setelah statistik yang terlalu sedikit, pemetaan menjadi sangat tidak terlihat. Jika Anda tidak suka menggunakan AutoNavi Map API untuk membuat peta, metode "Hidup itu singkat, saya ingin menggunakan pyechart untuk menggambar peta" juga sangat cocok untuk peta panas. Misalnya, berikut adalah peta provinsi dan penjualan:
Secara keseluruhan, Beijing, Sichuan, dan daerah pesisir adalah provinsi yang populer untuk pariwisata. Disarankan agar setiap orang menghindari mengunjungi provinsi-provinsi ini.
Tempat pemandangan yang direkomendasikan:
Mengetahui tempat-tempat indah dan provinsi yang perlu dihindari, lalu tempat mana yang bisa dikunjungi dengan sedikit orang? Di sini saus wortel didasarkan pada klasifikasi tempat-tempat indah, dan direkomendasikan 15 tempat indah dengan lebih sedikit orang:
Dua gambar terakhir didasarkan pada panas. Jika tidak ada bilah, panasnya 0. Kemudian Anda dapat memilih yang lebih panas di antara atraksi di atas untuk dimainkan.
Kode visualisasi:
1data = pd.read_csv ("sight.csv") 2data = data.fillna (0) 3data = data.drop (kolom =) 45 # Membagi alamat menjadi provinsi, kota, kabupaten 6data = data.apply (lambda x: x.replace ("", "")) 7data = data.apply (lambda x: x.split ("·")) 8data = data.apply (lambda x: x.split ("·")) 9data = data.apply (lambda x: x.split ("·")) 1011 # 30 objek wisata teratas dengan penjualan terbanyak 12num_top = data.sort_values (dengan = 'num', axis = 0, ascending = False) .reset_index (drop = True) 13Mport seaborn sebagai sns 14import matplotlib.pyplot sebagai plt 15plt.rcParams = # Tentukan font default 16plt.rcParams = Salah # Selesaikan masalah bahwa gambar yang disimpan ditampilkan sebagai persegi dengan tanda negatif'- ' 17sns.set (font = 'SimHei') # Selesaikan masalah tampilan Seaborn China 18sns.set_context ("bicara") 19fig = plt.figure (figsize = (15,10)) 20sns.barplot (num_top, num_top) 21plt.xticks (rotasi = 90) 22fig.show () dua puluh tiga 24 # Peringkat provinsi dan tempat-tempat indah 25 data = 126 var = data.groupby (). Level_sum.sum () 27var.unstack (). Plot (kind = 'bar', figsize = (35,10), stacked = False, color =) 2829 # Menurut statistik provinsi dan kota 30pro_num = data.groupby (). Agg ('sum'). Reset_index () 31city_num = data.groupby (). Agg ('sum'). Reset_index () 32 # Buat peta panas berdasarkan data 33 permintaan impor 34def transform (geo): 35 kunci = 'bb9a4fae3390081abfcb10bc7ed307a6' 36 url = " + str (key) + "address =" + str (geo) 37 respon = requests.get (url) 38 jika response.status_code == 200: 39 jawaban = response.json () 40 mencoba: 41 loc = jawaban 42 kecuali: 43 loc = 044 lokasi kembali 4546pro_num = pro_num.apply (lambda x: transformasi (x)) 47city_num = city_num.apply (lambda x: transformasi (x)) 48pro_num.to_csv ("pro_num.csv", encoding = "utf_8_sig") 49city_num.to_csv ("city_num.csv", encoding = "utf_8_sig") 5051dari pyecharts, impor Map 52map = Peta ("Peta panas penjualan tempat-tempat indah di provinsi", title_color = "# fff", title_pos = "center", lebar = 1200, tinggi = 600, background_color = '# 404a59') 53map.add ("", pro_num, pro_num, maptype = "china", visual_range =, is_visualmap = True, visual_text_color = '# 000', is_label_show = True) 54map.render (path = "pro_num.html") 55map = Peta ("Peta Panas Atraksi Provinsi Panas", title_color = "# fff", title_pos = "center", lebar = 1200, tinggi = 600, background_color = '# 404a59') 56map.add ("", pro_num, pro_num, maptype = "china", visual_range =, is_visualmap = True, visual_text_color = '# 000', is_label_show = True) 57map.render (path = "pro_hot.html") 5859 # 5A tempat indah, tempat indah 4A, tempat indah 3A dengan sedikit orang 60top_5A = data.sort_values (dengan = 'num', axis = 0, ascending = True) .reset_index (drop = True) 61top_4A = data.sort_values (dengan = 'num', axis = 0, ascending = True) .reset_index (drop = True) 62top_3A = data.sort_values (dengan = 'num', axis = 0, ascending = True) .reset_index (drop = True) 63fig = plt.figure (figsize = (15,15)) 64plt.pie (top_5A, label = top_5A, autopct = '% 1.2f %%') 65plt.title ("5A tempat indah dengan sedikit orang") 66plt.show () 67fig = plt.figure (figsize = (15,15)) 68ax = sns.barplot (top_4A, top_4A) 69ax.set_title ("Tempat indah dengan sedikit orang") 70fig.show () 71fig = plt.figure (figsize = (15,10)) 72ax = sns.barplot (top_3A, top_3A) 73ax.set_title ("Tempat indah dengan sedikit orang") 74plt.xticks (rotasi = 90) 75fig.show () KesimpulanCrawler dikumpulkan pada 7 September 2018, dan hasilnya mungkin bias karena waktu pengumpulan yang berbeda. Perlu dicatat bahwa jika pyechart digunakan untuk memetakan panas dan penjualan kota dan tempat pemandangan, perlu diperhatikan bahwa pyechart tidak dapat memperoleh lokasi dari beberapa tempat pemandangan. Untuk solusinya, silakan lihat analisis review film "The Four Kings of Di Renjie" (reptile + word cloud + heat map) ) "Satu artikel.
Setelah analisis, editor memutuskan untuk tinggal di rumah pada Hari Nasional, tidak ingin keluar, hanya ingin menjadi anak gemuk yang bahagia. Akhirnya, saya mengucapkan selamat Hari Nasional untuk Anda semua! ! !
- PPT 68 halaman mengajarkan Anda untuk menulis makalah penelitian pembelajaran mesin yang sangat baik!
- Tim U18B Tiongkok kalah dari Vietnam? Tim A bahkan lebih sengsara, dengan kekalahan 5 gol dari West Second Echelon dan satu kekalahan beruntun!
- "MIT Technology Review" merilis sepuluh besar teknologi terobosan di dunia pada tahun 2018, patut diketahui!
- Empat besar rekrutan pelatih Manchester United terungkap! Mengejar 2 bintang baru Inggris sembari memperlihatkan 1 ambisi besar
- Wanita yang memegang anjing di bus ditolak, dimarahi pengemudi sepanjang jalan dan menembakkan foto flash