Python, kullanımı kolay ve ucuz bir cep telefonu seçmek için nasıl kullanılır?

13 Eylül'de piyasaya sürülen iPhone X'ler, cep telefonu endüstrisindeki büyük haber olarak kabul ediliyor ve yeni iPhone'un fiyatı, cep telefonu fiyatlandırmasında bir kez daha yeni bir rekor kırdı. Basın toplantısını izledikten sonra, birçok insanın böyle hissettiğine inanıyorum ...

Daha önce iPhone 6 kullandım ve yakın zamanda telefonumu değiştirmek üzereyim. Ekonomik durum ciddidir ve iPhone'u değiştirmeye gücüm yetmez, bu yüzden yalnızca eski sürüme geçebilir ve Android kampına gidebilirim.

1.500 yuan bütçe ile ikinci el bir iPhone bile satın alamazsınız, ancak Android makinede birçok seçenek var. Bu yazıda, cep telefonu satın almak için veri analizinin nasıl kullanılacağına bir göz atacağız.

fikir analizi

Fikir çok basit: Tüm cep telefonu verilerini taramak için Jingdong Alışveriş Merkezi'ne gidin ve ardından konfigürasyona ve fiyata göre nitelikli cep telefonlarını filtreleyin ve filtrelenmiş cep telefonları arasından en uygun maliyetli cep telefonunu seçin. Kabaca şu şekilde bir akış şeması çizin:

Verileri tara

İlk adımda ilk olarak Jingdong Mall'dan satışta olan tüm cep telefonu verilerini tarıyoruz. Burada esas olarak fiyat ve konfigürasyon bilgileriyle ilgileniyoruz.Ürün sayfasındaki fiyat ve konfigürasyon bilgileri aşağıdaki iki resimde gösterildiği gibidir:

Tüm cep telefonlarının fiyat ve yapılandırma bilgilerini taramak için kod yazıyoruz. Tarayıcının temel kodu aşağıdaki gibidir:

# Bir cep telefonu ürününün fiyatını alın def get_price (skuid): url = "https://c0.3.cn/stock?skuId=" + str (skuid) + "alan = 1_72_4137_0venderId = 1000004123cat = 9987,653,655buyNum = 1choseSuitSkuIds = extraParam = {% 22originid% 22:% 221% 22 } ch = 1fqsp = 0pduid = 15379228074621272760279pdpin = detailedAdd = nullcallback = jQuery3285040 " r = istekleri.get (url, doğrula = Yanlış) content = r.content.decode ('GBK') eşleşti = re.search (r'jQueryd + ((. *)) ', içerik, re.M) eşleşirse: data = json.loads (matched.group (1)) price = float (veri) iade fiyatı dönüş 0 # Telefonun yapılandırma bilgilerini alın def get_item (skuid, url): fiyat = get_price (skuid) r = istekleri.get (url, doğrula = Yanlış) content = r.content root = etree.HTML (içerik) düğümler = root.xpath ('.// div / div') parametreler = {"fiyat": fiyat, "skuid": skuid} düğümlerdeki düğüm için: text_nodes = node.xpath ('./ dl') k = "" v = "" text_nodes içindeki text_node için: text_node.tag == "dt" ise: k = text_node.text elif text_node.tag == "dd" ve "class" text_node.attrib'de değil: v = text_node.text params = v dönüş parametreleri # Tüm telefon bilgilerini bir sayfada alın def get_cellphone (sayfa): url = "https://list.jd.com/list.html?cat=9987,653,655page={}sort=sort_rank_asctrans=1JL=6_0_0ms=4#J_main".format(page) r = istekleri.get (url, doğrula = Yanlış) content = r.content.decode ("utf-8") root = etree.HTML (içerik) cell_nodes = root.xpath ('.// div / a') client = pymongo.MongoClient () db = müşteri hücre_odlarındaki düğüm için: item_url = fix_url (node.attrib) matched = re.search ('öğe.jd.com/ (d +). html', öğe_url) skuid = int (matched.group (1)) kaydedilen = db.items.find ({"skuid": skuid}). count () kaydedildiyse > 0: yazdır (kaydedildi) devam et item = get_item (skuid, item_url) # Sonuç MongoDB'de saklanır db.items.insert (öğe)

Yukarıdaki get_price ve get_item işlevlerinin sırasıyla iki URL'den veri elde ettiğine dikkat edilmelidir.Bunun nedeni, yapılandırma bilgilerinin doğrudan ürün sayfasından ayrıştırılabilmesi ve fiyat bilgilerinin başka bir ajax isteğinden alınması gerektiğidir. Tırmanılan tüm veriler MongoDB'de saklanır.

Verileri filtrele

Azalan cep telefonu verileri arasında, eksiksiz bilgi içeren 4700'den fazla veri parçası bulunmaktadır.Bu 4.700 cep telefonu, 70 cep telefonu markasına aittir. Bu markalar şu şekilde kelime bulutlarına çekilir:

Cep telefonunun konfigürasyonu esas olarak aşağıdaki parametrelere sahiptir:

  • Çift kartlı ikili bekleme olup olmadığı;
  • Gövde malzemesi;
  • CPU modeli;
  • hafıza boyutu;
  • depolama kapasitesi;
  • pil kapasitesi;
  • Ekran malzemesi
  • Ekran boyutu
  • çözüm
  • kamera.

Kardeş Qiang genellikle kitap okumak, WeChat'i taramak ve bir şeyler satın almak için cep telefonunu kullanıyor, bu yüzden yeni bir cep telefonu alırken en çok hız, kapasite ve bekleme süresi ile ilgileniyor. . Verileri filtrelerken yukarıdaki faktörleri göz önünde bulundurarak aşağıdaki koşulları ayarlıyorum:

  • CPU markası Qualcomm'dur;
  • Bellek boyutu 6 GB veya daha büyüktür;
  • Depolama kapasitesi 64 GB veya daha büyüktür;
  • Pil kapasitesi 3000mAh'den fazladır;
  • Çift kartlı ikili bekleme olmalıdır;
  • Fiyat 1500 yuan içinde.

Verileri filtrelemek için kod aşağıdaki gibidir:

client = pymongo.MongoClient () db = müşteri öğeler = db.items.find ({}) sonuç = ön işlem (öğeler) df = pd.DataFrame (sonuç) df_res = df print (df_res.sort_values (göre = "fiyat"))

Önce MongoDB'den verileri okuyun, ardından bir DataFrame oluşturun ve yukarıdaki koşullara göre DataFrame'deki verileri seçin. Kodun son satırı, seçilen cep telefonlarını yazdırır ve en düşükten en yükseğe doğru fiyata göre sıralar.

Böylesine bir taramadan sonra şu 38 cep telefonunu aldık:

Yukarıdaki cep telefonlarının yapılandırmaları nispeten benzerdir, ancak Xiaomi'nin İnternet üzerindeki değerlendirmesi genellikle nispeten yüksektir, bu nedenle yukarıdaki listede yer alan tüm Xiaomi telefonlarını filtreledim ve aşağıdaki 7 modeli aldım:

Bu, Redmi Note5 ve Xiaomi 6X'in PK'sı haline geldi. Fiyat açısından ikisi fena değil. Yapılandırma açısından, İnternette bulunan Redmi Note 5'in CPU'su Snapdragon 636'dır (yukarıdaki tablo Redmi Note 5'in cpu modelinden yoksundur). Xiaomi 6X Snapdragon 660 ile karşılaştırıldığında 636, performans olarak 660 kadar iyi değil, ancak daha fazla güç verimli. Redmi Note 5'in 4000 mAh bataryasını da göz önünde bulundurarak sonunda Redmi Note 5 almaya karar verdim. Bin yuan telefon, Snapdragon 636 sekiz çekirdekli CPU, 6G geniş bellek, 64G geniş depolama, 5,99 inç geniş görüş alanı tam ekran, ön kamera + arka çift kamera, uzun bekleme süresi, bu telefon muhtemelen bin Yuan makinesinin imparatoru.

Yazar: Güçlü kardeş, kıdemli Python programcısı, Morgan Stanley ve ebay'de çalıştı, sürüngenler, Web geliştirme, veri analizi konusunda uzmanlaşmıştır.

Bu makale yazarın katkılarıyla hazırlanmıştır ve CSDN'nin konumunu temsil etmez.

"Belgeler için çağrı"

CSDN kamu hesabı, "on milyonlarca teknik insanla büyüme" kavramını destekler. Teknik insanların ilk kez ilgilendiği endüstri odak olaylarını teknik insanların benzersiz bakış açılarından açıklamak için yalnızca "inek başlıkları" ve "konuşma" sütunlarını kullanmakla kalmaz, aynı zamanda "Teknik Başlıklar" sütunu, sektördeki popüler teknolojilerin ve uygulamaların derinlemesine bir yorumunu sunarak, tüm geliştiricilerin teknolojik trendlere ayak uydurmasına, uyanık bir teknolojik anlayışı sürdürmesine ve sektör eğilimleri ve teknolojileri hakkında daha kapsamlı bir anlayışa sahip olmasına olanak tanır.

Yüksek kaliteli makaleleriniz veya endüstrinin sıcak olayları, teknoloji trendleri hakkında içgörüler veya derinlemesine uygulama uygulamaları, senaryolar vb. Hakkında yeni içgörüleriniz varsa, lütfen gönderimler için CSDN ile iletişime geçin. İletişim: WeChat (guorui_1118, lütfen gönderim + ad + şirket pozisyonunu not edin), e-posta (guorui@csdn.net).

Kralın ihtişamından LOL'a kadar, sizin için böyle utanç verici bir an yok!
önceki
China Telecom Care Card paketi çevrimiçidir: aylık kira 1 sent, 1G veri / 100 dakika konuşma dahil
Sonraki
Huawei'in yapay zeka çipleri hakkındaki tüm sorular, cevapları burada var
Uzun süre dikkat ettikten sonra, bu yıl sonunda arabadan bahsediyorum, BAIC New Energy EU5
Microsoft, Windows 10 güncelleme programını yeniden yayınladı!
Yabancı medya yeni nesil uçan tatil fotoğrafları çiziyor, spor fanatiği artık 1.0T üç silindirli motorla donatılmamış
Kendime programlamayı öğretmek için eğitim sınıfından vazgeçin, 9 ay sonra 6 rakamlı bir yazılım mühendisi oldum
Shijingshan, Haidian'da 4 parsel konut arsası, ortak mülk konutları için 3 parsel, en düşük birim fiyatı 38.000 /
Bir mimari yükseltmesi düşünmek için bir hata beklediniz mi?
Hyundai Festa'yı alın ve üç gün boyunca 300 kilometre sürüş deneyimini paylaşın
Festa gibi bir hit olabilir mi? Beijing Hyundai'nin yeni Yuena'sı Eylül sonunda listelenecek
Hamu Yüksek Hızlı Demiryolu resmen açıldı: 292.995 kilometre uzunluğunda, hat boyunca 11 istasyon
Ali'nin oyun kalbi ölmedi mi? Konuşma
1U sunucu, 16 AMD 64 çekirdekli Xiaolong'u entegre eder: tam su soğutma
To Top