API vk python kullanma: Vkontakte duvarını indirme. VKontakte temizleme programı

  • 13.06.2019

2. Programı başlatıyoruz, VKontakte hesaplarınızdan herhangi birinden kullanıcı adı ve şifreyi giriyoruz.

3. Programa girdik. Medya ve İndir'i tıklayın.

5. İndirmek istediğiniz kullanıcının sayfası veya grubu veya genel sayfası, albümleri için bir bağlantı belirtin. Örneğin, belirttim: vk.com/club717898 Sadece 14 fotoğraf albümü var ve 14 albümdeki tüm fotoğrafları indirmek istiyoruz.

7. Resimleri kaydetme sürecini gözlemliyoruz.

8. Belirtilen klasörde resimlerimize bakıyoruz. Orada klasörlerde saklanırlar - her klasör = bir albüm. Grupta 14 albüm vardı - fotoğraflı 14 klasör aldılar.

Hızlı ve ücretsiz kaydeder. Belki bu VkBot demosu işe yarasa da o zaman para isteyecektir, bilmiyorum. Görünüşe göre VkBot ayda 400 rubleye mal oluyor.

Bulunduğumuz ifadeler:?tag=vkontakte, vk'den android'e nasıl fotoğraf kaydedilir, temastan android'e nasıl fotoğraf kaydedilir, vk'den android'e nasıl fotoğraf indirilir, vk'den android'e nasıl resim indirilir, vk'den android'e nasıl fotoğraf indirilir, android'de vk'den fotoğraf nasıl kaydedilir, android'den vk'den nasıl fotoğraf kaydedilir, android'e resim nasıl kaydedilir, vk'den android'e nasıl resim kaydedilir, vk'den android'e nasıl resim kaydedilir, bir resim nasıl kaydedilir vk'den android'e resim, vk'den android'e resim nasıl indirilir, vk'de resim nasıl kaydedilir, bir kişiden android'e resim nasıl kaydedilir, vk'de bir duvara resim nasıl kaydedilir, bir gönderi nasıl kaydedilir bir kişi, vkontakte'den android'e nasıl fotoğraf kaydedilir, vkontakte'de bir duvardaki tüm resimler nasıl indirilir, vkontakte'de bir duvardan fotoğraflar nasıl indirilir, VKontakte duvarındaki tüm resimler nasıl indirilir, VK android'de bir fotoğraf nasıl kaydedilir, nasıl Android'de bir VKontakte albümü indirmek için, bir VKontakte grubu nasıl kaydedilir, VK'daki bir gruptaki tüm resimler nasıl indirilir, bir VKontakte grubundan tüm verileri kaydetmek, kayıtlı kartları aldatmak mümkün mü vk'de tinok, iletişim halindeki bir gruptaki tüm resimler nasıl indirilir, vk'de bir halktan tüm fotoğraflar nasıl indirilir, vk'den android'e bir albüm nasıl indirilir, android bir vk albümü indir android, resimleri vk'de hızlı bir şekilde nasıl kaydederim , vkontakte android'den resimler kaydedilmez, mz grubunun tüm fotoğrafları bir kerede VK'ya nasıl kaydedilir

Sosyal ağ VKontakte, tükenmez bir müzik deposudur. “Ateşle gündüz” küresel ağda bulunamayan nadir müzik besteleri bile burada saklanır. Ama sorun şu ki - onları dinleyebilirsiniz, ancak bilgisayarınıza indiremezsiniz. Yine de… neden bahsediyorum? İmkansız - çünkü site kullanıcılara böyle bir fırsat vermiyor, ancak bu başkaları için, sizin ve benim için değil.

Sadece birkaç fare tıklamasıyla VK'dan herhangi bir şarkıyı nasıl indireceğinizi bilmek ister misiniz? O halde okumaya devam edin!

VK'dan ücretsiz müzik indirmenin yedi yolu

Ağ hizmetleri

Basitten başlayalım. VK web sitesinden ses parçalarını indirmek için, hizmetleri için kayıt veya ödeme gerektirmeyen özel web hizmetleri vardır: gelin ve kullanın. Bu tür birçok hizmet var ve benzer bir prensipte çalışıyorlar. En popüler olanlardan birkaçına göz atalım.

ses vk

Kullanarak VK'dan müzik nasıl indirilir Audio-vk.ru? Bir göz atın ve hemen anlayacaksınız. Orta alanın en üstünde arama çubuğu bulunur. Şarkının adını veya sanatçının (yazar) adını girin - parça bulunacaktır. Kaydetmek için "İndir" e tıklayın.

İndir-Müzik-VKontakte

- öncekinden biraz daha “karmaşık” bir hizmet. Başlık veya sanatçıya göre aramaya ek olarak, burada filtreler vardır (ekran görüntüsünde daire içine alınmış açılır listeler):

  • “Ben” - sayfanızdan müzik indirin.
  • "Arkadaşlar" - arkadaşların sayfalarından müzik indir.
  • "Gruplar" - gruplardan aynı.
  • “Popüler” - VK web sitesindeki en popüler kompozisyonlar.

İkinci liste, ne yaptığınızı netleştirmenizi sağlar. Örneğin, “Ben”i seçerken, parçaların tam olarak nereden indirileceğini - ses kayıtlarından, albümlerden (bu seçeneği seçtiğinizde, albümlerinizin bir listesi görünecektir), duvardan veya önerilenlerden belirleyebilirsiniz. Filtreler nasıl kullanılır, umarım zorlanmadan çözebilirsiniz.

Download-music-vkontakte.ru'yu açtığınızda parça listelerini görmüyorsanız, aynı adı taşıyan bağlantıya tıklayarak VK sayfanızın ses dosyalarına erişime izin verin.

Tarayıcı Uygulamaları ve Eklentileri

Eklenti, herhangi bir uygulama gibi bilgisayara yüklenir. O ne yapıyor? VK'daki her ses dosyasına bir indirme düğmesi ekler. Düğme, aşağıyı gösteren bir ok gibi görünür ve bir parçanın üzerine geldiğinizde görünür. Yanında, dosyanın bit hızının yanı sıra boyut görüntülenir.

Ayrıca SaveFrom.net, tarayıcıya kendi uzantısını ekler. Sayfadaki tüm müzik dosyalarını indirmek için kullanmak uygundur.

Bir çalma listesindeki tüm şarkıları indirmek için uzantı simgesini tıklayın. "Ses Dosyalarını İndir" seçeneğini seçin.

Bir sonraki pencerede "Devam" ı tıklayın. Parçalar birer birer indirilmeye başlayacaktır.

Eklenti, SaveFrom.net ile hemen hemen aynı şekilde çalışır. Bir bilgisayara kurulum yaptıktan ve tarayıcıyı yeniden başlattıktan sonra, VK'daki her müzik parçasının yanında Oynat düğmesinin yanında aşağı oklu bir düğme görünecektir. Üzerine tıklamak dosyayı indirme işlemini başlatır.

Ek olarak, müzik çaların altında bir “Kaydet” düğmesi görünür.

sadece VKontakte web sitesinden ses parçalarını indirmek için bir uygulama değil. Bir web tarayıcısından bağımsız olarak çalışır, programın kendisinde VK'ya giriş yapmak yeterlidir.

VKontakte menüsü aracılığıyla, VKMusic'e yüklemek istediğiniz şarkıların listesini - hesabınızdan, arkadaşlarınızdan veya gruplarınızdan, popüler veya önerilenlerden seçebilirsiniz. Listedeki her parçaya tıklayarak ve “İndirilenlere ekle” seçeneğine tıklayarak birkaç parçayı aynı anda indirebilirsiniz. Program ayrıca yerleşik oynatıcı aracılığıyla müzik dinlemenize ve ayrıca çalma listeleri oluşturmanıza olanak tanır.

VK sitesinden programsız müzik indirme

Çıplak ellerinizle VK'dan müzik indirebilirsiniz. Nasıl? Gelişmiş kullanıcılar muhtemelen zaten tahmin etmişlerdir. Ve anlamayanlar için iki basit yolu paylaşacağım.

Doğrudan bağlantı yoluyla indirin

Her ses dosyasının, oynatma sırasında oynatıcı tarafından yüklendiği yerden kendi benzersiz İnternet adresi vardır. Şarkının nerede saklandığı bize gösterilmez ancak bu bilgi sayfa kodundadır. Oradan alacağız. Böyle…

  • İstediğiniz ses parçasına sağ tıklayın. "Öğe kodunu görüntüle"yi seçin. Veya parçayı seçin ve Ctrl+Shift+C tuşlarına basın.

  • Etiketlerden birinin içinde etiket bulunur giriş tipi, diğer şeylerin yanı sıra kompozisyona doğrudan bir bağlantı olduğu yer. Hadi kopyalayalım. Bunun tam olarak ihtiyacınız olan şarkı olduğunu anlamak için çalma listesindeki öğelerin vurgulanması yardımcı olacaktır: üzerine geldiğinizde “Oynat” düğmesi yanacaktır.

  • Bağlantıyı tarayıcının adres çubuğuna yapıştırın ve "Enter" tuşuna basın: müzik çaların bulunduğu sayfa açılacaktır. Üzerine sağ tıklayın ve "Videoyu Farklı Kaydet" i seçin. Alternatif olarak, Ctrl+S tuşlarına basın.

Geriye kaydedilecek klasörü belirlemek kalıyor - ve kompozisyon cebinizde.

Tarayıcı Önbelleğinde Ses Dosyası Bulma

İnternette müzik dinlerken, tarayıcı her şarkıyı geçici klasörlerinden birine (önbellek) indirir. Bu, ihtiyacınız olan dosyaların zaten sabit sürücünüzde olduğu anlamına gelir, tek yapmanız gereken onları bulmak!

  • Opera tarayıcısı bu verileri %LOCALAPPDATA%\Opera Software\Opera Stable\Cache klasöründe saklar;
  • Google Chrome - %LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache içinde;
  • Mozilla Firefox - %LOCALAPPDATA%\Mozilla\Firefox\Profiles\ProfileName\Cache içinde.

Herhangi bir tarayıcının önbelleğine bakarsak, dosyaların orada uzantıları olmadan anlaşılmaz isimler altında kaydedildiğini göreceğiz. Doğru olanı nasıl bulabilirim:

  • Kompozisyonu VKontakte sayfasında çalarken, önbellekteki dosyaları değişiklik tarihine göre sıralayın. Şimdi son zamanlarda başlatılan her şey en üstte olacak.

  • Dosya boyutlarına bakalım. Müzikli olanlar 2,5 mb'den az olmayan ağırlıktadır. Listemde en üstte 8 257 kb ağırlığında bir nesne var. Şu anda çalan şarkının bu olduğundan hiç şüphem yok. Fare imleci ile seçin ve F2'ye basın - yeniden adlandırma alanı görünecektir. İçine “mp3” uzantısını ekliyoruz.

  • Uzantıyı atadıktan sonra dosyanın bir müzik çalar simgesi vardır (benim örneğimde AIMP). Dinlemek için üzerine tıklayın.

  • tahmin ettin mi? İyi! Kompozisyona doğru adı vermek ve daha uygun bir yere taşımak için kalır.

VK web sitesinden müzik kaydetmenin tüm düşünülen yollarının tamamen ücretsiz olduğunu bir kez daha hatırlatmama izin verin. Ve gördüğünüz gibi, çok basitler. Kullanın ve keyfini çıkarın!

Bununla, sabit disk klasörünüzü herhangi bir grubun duvarından indirilen mükemmel VKontakte gönderileriyle doldurabilirsiniz.

Henüz Vkdog programını kullanmadıysanız, indirip bilgisayarınıza kurmanızı, kayıt olun ve giriş bilgilerinizle giriş yapmanızı tavsiye ederim.

Programı kullanıma hazırlayalım veya daha doğrusu bir VKontakte hesabı ekleyelim, başarılı bir şekilde giriş yapalım, anti-captcha anahtarını yerleştirelim. Bunun nasıl yapılacağı bu makalede daha önce yazılmıştır.

Bilgisayara kaydederek VKontakte duvarını kapmak için görev ekleme

Düğmeye basıyoruz " + Görev ekle».

Sırayla üç adım gerçekleştiriyoruz:

  1. Gelin ve bu görevin adını yazalım, örneğin, "bilgisayarda çok pişiriciler". Garip, ama grubun multicooker ile ilgili olduğunu ve görevin bir bilgisayara gönderileri ayrıştırmak olduğunu anlıyorum. Ana şey, sizin için net olacak şekilde yazmaktır - isim hiçbir şeyi etkilemez.
  2. Sekmelerde "Bilgisayarda kapmak" görevinin türünü seçin.
  3. Hesap listesinden, bu eylemi gerçekleştirecek olanı belirtmeniz gerekir.

"Devam" ı tıklayın.

- " adında bir pencere belirir. Bilgisayara kaydet».

İki alan içerir:

Nerede soyulur. Vkontakte sosyal ağının toplulukları için arama çubuğunda, kapmak için bir grup arayacağımız anahtar kelimeleri kullanıyoruz. Sorundan gerekli olanı seçeceğiz, indirmek için yüksek kaliteli gönderileri manuel olarak açıp kontrol etmenizi öneririm. İsteneni buluyoruz ve bağlantıyı tarayıcının adres çubuğuna kopyalıyoruz. Satıra ekliyoruz (nereden soyulacak).

Hangi klasör soyulacak."Gözat" ı tıklayın - gönderileri kaydedeceğimiz klasörün yolunu belirtin. Eğer mevcut değilse, yaratılması gerekir. Tamam - devam edelim.

Bir bilgisayarda kapma kurma - gönderilerin viralliği

Yeni pencerede, en üst satır hemen gözünüze çarpar ve herkese açık gönderilerin sayısını gösterir. Bu 1571'e sahibim.

Gruptaki gönderileri rastgele kopyalamak için kutuyu işaretliyorum. Sıralama önemli olmadığı için hepsini indireceğim. Mesajlar arasındaki aralığı "1" olarak ayarladım. Bu, yakalama sürecini hızlandıracaktır.

  • Minimum beğeni - 20
  • Minimum tekrar sayısı - 5
  • Minimum yorum sayısı 0'dır (fark etmez).
Bu değerlerin görevleriniz için ayarlanması gerektiğini hatırlatalım. Gereksinimler ne kadar yüksek olursa, program o kadar az gönderiyi yağmalayacak, ancak kaliteleri yüksek olacaktır. Yani, hedef kitle tarafından talep görüyorlar!

HAZIR! - VKontakte'den bir bilgisayara gönderileri almak için bir görev eklendi.

Eylemlerin geçmişinde, programın belirtilen gruptaki gönderileri sabit sürücüdeki bir klasöre nasıl çaldığını görebilirsiniz.

.XML uzantılı bir dosyaya kaydedilirler.

sonuçlar

Bu tür görevler, XML biçiminde gönderilere ihtiyaç duyanlar için uygundur. Vkdog bunları belirli parametrelere göre bir gruptan indirdikten sonra tek bir dosyaya kaydeder.

Vkdog, VKontakte topluluklarının yüksek kaliteli içeriği için çok kullanışlı özelliklerle dolu çok kullanışlı bir programdır. Geliştiriciler, sosyal ağ Vkontakte'deki yöneticilerin ve SMM uzmanlarının modern ihtiyaçlarını karşılamaya çalışıyor.

Bu nedenle, VKontakte gruplarını sürdürmek için para kazanmayı planlıyorsanız, bu asistan olmadan yapamazsınız! . İyi yazılım çalışmalarının tadını çıkarın!

Tanıtım

İyi günler, uzun süre hiçbir şey yazmadım - birçok sebep vardı. Bu süre zarfında oldukça fazla miktarda malzeme birikmiştir ve bunu mümkün olduğunca eksiksiz bir şekilde buraya koymaya çalışacağım. Bugün Python aracılığıyla iletişim API'si ile çalışmaktan bahsetmek istiyorum ve bir örnek bir dergi duvarı indirmek olacak Eugene Onegin. Bölüm 11. Hepsini nasıl yaptığımı okuyamayacak kadar tembelseniz ama duvarınızı bir an önce indirmek istiyorsanız doğrudan "Rapor ve test" bölümüne gidin.

Eğitim

Yapılacak ilk şey API'yi indirmek ve uygulamayı kaydetmek, kimliğini almaktır (eğer başvurunuzu kaydettirmek ve kimliğini almak istemiyorsanız, bu adımı atlayın - varsayılan olarak, program uygulama kimliğimin yerini alacaktır) . API bu adreste mevcuttur https://pypi.python.org/pypi/vkontakte.Orada bir kurulum talimatı var. Çalışmazsa, dosyaları indirin, sıkıştırmasını açın, terminalde çalıştırın (Linux)

$ sudo python2 ./setup.py linux2'de $ python2 Python 2.7.5'i yükleyin (varsayılan, 12 Mayıs 2013, 12:00:47 PM) Daha fazla bilgi için "help", "copyright", "credits" veya "lisans" yazın . >>> vkontakte'yi içe aktar
Kurulumdan sonra, bu kitaplığın işlevselliğini kullanabiliriz, ancak bir süredir, kullanıcının giriş bilgilerini ve şifresini girmesi için bir tarayıcı penceresi oluşturmak zorunlu hale geldi ve ancak o zaman python API ile çalışmak için bir token_id alıyoruz. . Bu ormana girmemek için bir tarayıcı penceresi gibi davranabilir, oraya hayali olarak geçerli bir giriş ve şifre girebilir ve yasal jetonunuzu alabilirsiniz. Bu makale, bu küçük hack hakkında daha fazla ayrıntıya giriyor. Makale sonucunda oturum açma, şifre, uygulama tanımlayıcı, istenen hakların raporlandığı bir yetkilendirme sınıfı oluşturulmuştur. Bu dosyayı çalışmadığı için biraz düzenledim. Sürümümü indirebilirsiniz.

İlk adım

İlk örnek için bir request ile basit bir yetkilendirme yapalım.

#!/usr/bin/env python3 # -*- kodlama: utf-8 -*- import vk_auth import vkontakte def main(): (token,user_id) = vk_auth.auth("$EMAIL", "$PASSWD", "$ID_APP", "$SOPE") vk = vkontakte.API(token=token) print "Merhaba vk API , sunucu zamanı ",vk.getServerTime() ise __name__ == "__main__": main()
Karmaşık bir şey yok - yetkilendirme sınıfını içe aktarıyoruz, c API kitaplığını içe aktarıyoruz, bir belirteç ve bir tanımlayıcı alıyoruz, API işlevlerini kullanıyoruz.

Örnek vermek

Şimdi büyük, ciddi ve en önemlisi pratik bir örnek zamanı - Vkontakte duvarını indirmek. Duvarı indirme fikri acil ihtiyaçtan doğdu. Vkontakte halkı, bir istisna dışında çok uygun bir şekilde organize edilmiştir - duvardaki eski bilgiler bulunamıyor. Bir fikir doğdu - daha iyi erişim hızı için tüm duvarı halktan indirin ve birkaç HTML dosyasına bölün.
Çalışmaya başlamadan önce, yetkili bir teknik görev belirlemeniz gerekir.

teknik görev

Vkontakte sosyal ağından bir duvar indirmek için komut dosyası veya komut dosyası seti.
Giriş verileri:
  • Kullanıcı adı
  • Şifre
  • Grup\Genel\Sayfa Kimliği
  • İndirilecek yayın sayısı
  • Hangi mesajın indirileceğinden başlayarak
  • Bölünecek kaç HTML bloğu
Uygulama, kolay çevrimdışı görüntüleme için tüm metin ve grafik bilgilerini duvardan indirmelidir. Duvarda videolar veya bağlantılar varsa, uygulama adlarını bildirmeli ve İnternet'e bir bağlantı vermelidir. Uygulama ayrıca tüm yorumları gönderilere indirmeli ve düzgün bir şekilde biçimlendirmelidir (gönderilere benzer).

uygulama

Programın çerçevesini ve giriş parametrelerini tanımlayalım.
Şimdilik bu kodu çizelim. Parametre ayrıştırma için OptionParser kitaplığını kullandım - kutudan çıkıyor ve çok kullanışlı. Bir sonraki adım, dökümü hacimler halinde düzenlemektir. Eski kodu biraz değiştirerek, bilgiyi gerekli cilt sayısına bölecek bir algoritma elde ederiz. İşte kod. Ardından, vk API'sini kullanmanız ve Kişiden gönderileri indirmeniz gerekir. sigara içmiş olmak belgelerçabucak buldum gerekli fonksiyon. Contact API, JSON istekleri göndermenize ve JSON yanıtları almanıza olanak tanır. Kullandığımız vkAPI, JSON isteklerini bir değişkenler listesinde kapsüller. Çok uygun olduğunu söyleyemem ama başka bir yol bulamadım. Belirli bir grubun duvarından gönderi istemek için aşağıdaki kodu çalıştırmamız gerekiyor

Gönderiler = vk.get("wall.get", Owner_id=owner_id,offset=offset,count=count)
Bu kodu çalıştırdıktan sonra gönderilerüye olmak saymak ofsetli gönderiler telafi etmek. İndirilebilir gönderi sayısında bir sınır olduğunu ve yanılmıyorsam 100 olduğunu belirtmekte fayda var. Döngünün 1 yinelemesi için en uygun indirilebilir gönderi sayısı olarak 50 değerini aldım. Son listede 2 işlevi vurguladım: gönderileri indirmek get_posts() ve HTML'de biçimlendirme posts_to_html() ve üzerlerine kapaklar koyun. şimdi dolduruyorum get_posts() yukarıda verilen kod. Referans şartlarında, tüm yorumları koda indirmek de gerekiyordu. Gönderileri indirme ve html olarak biçimlendirme işlevini ayırdım, bu da yorumların indirilmesi gönderilerin indirilmesiyle birlikte yapılması ve tek bir değişkende kaydedilmesi gerektiği anlamına geliyor. Neyse ki, JSON dinamik bir formattır ve onu yorumların saklanacağı tek bir alanla desteklemek kolaydır.
Bulduğumuz belgelerde yorum indirme işlevi ve uygulamak. Yorum içeren bir gönderiyi indirme işlevi 2 işleve ayrılacaktır - bir gönderiyi indirme ve ona yorum indirme. Bu kodu alıyoruz:

Def get_comments(vk,owner_id,post_id,count): size = 50 yorum = if(sayım) 0): post_id = gönderiler[i]["id"] yorumlar = get_comments(vk,owner_id,post_id,comments_count) gönderiler[i]["yorumlar"]["veri"]=yorumları yazdır len(yorumlar),comments_count dönüş gönderiler
şimdi fonksiyon get_posts alanın olduğu gönderileri döndürür yorumlar.veri yorumlar tutulacaktır.
Bu, verileri indirerek işi tamamlar.Ayrıca tüm bu rigmarole'dan güzel HTML sayfaları oluşturmak gerekir. Dürüst olmak gerekirse, bu benim için en zor iş. Ama başka bir yol yok - ileri.

HTML sayfalarının oluşumu.

Formasyon için, içine JSON'dan veri ekleyeceğim bir dizi şablon yazdım. Hepsini burada listelemeyeceğim. Sadece bitmiş projeye bir bağlantı verin. HTML üreten işlev çok büyük ve çirkin çıktı.HTML'de profesyonel olan insanlar varsa, Vk'ye daha çok benzeyen daha uygun bir tasarım için onlara minnettar olacağım.

Veri İndiriliyor.

TOR'un noktalarından biri uygun yerel görüntülemeydi. Şu anda, tüm resimlere ve ses kayıtlarına bağlantılar mutlaktır (yani, İnternet'e yönlendirilirler), ancak yakınlarda olmaları gerekir ve İnternet'in yokluğunda resmi görebilir ve dinleyebilirsiniz. müzik. Bunu korkunç Karaganda üzerinden bir pitonla yapabilirsiniz. Ama ben daha zarif seçeneği tercih ettim - wget. Bu standart bir Linux İnternet indiricisidir ve üzerinde bilgi bulunan bir web sayfasını indirebilir.HTML'yi beslemek için ayrıca man wget'i okumanız ve birkaç gerekli anahtarı bulmanız gerekir.
Senaryo böyle çıktı:

$wget -B -k -r -l0 --force-html -i name-*.html -P ./data

Sadece bir tane var - wget tüm bilgileri indirecek, ancak bağlantıları dönüştürmeyecek.Belki, elbette, bunu yapabilir, ama nasıl olduğunu bulamadım. Bu nedenle, python'da, fotoğraf\ses depolamak için herhangi bir iletişim adresinden yakındaki bir klasöre (GrupAdı)_(Birim Numarası)verisine bir bağlantıya bir dönüşüm yazacağız. Grup adını cilt numarasından kasten ayırdım, böylece yanımda yalnızca bir cildi taşıyabilirim ve kullanılmayan sayılamayacak kadar çok bilgiyi sürüklemezdim.

Def convert_lincs(txt,klasör,recurce = 0): out = re.sub("http://",klasör,txt) geri dön
Gördüğünüz gibi düzenli ifadelerin gücü sayesinde bu sorunu 1 satırda çözdük.
Ayrıca, sürekli olarak kesintiye uğrayan iletişim (İnternet bağlantım kötü) ve yüksek talep sıklığı nedeniyle İletişimden reddedilme sorunuyla da karşılaştım. Bu 2 faktör programı periyodik olarak çökertti, bu yüzden kullandığım tüm İnternet erişim yöntemleri için hatasız paketleyiciler yaptım. Şu şekilde çıktı:

Def wall_getComments(vk,owner_id,post_id,count,recurce = 0): if (recurce ==20): return try: com = vk.get("wall.getComments", Owner_id=owner_id,post_id=post_id,count=count ) hariç: time.sleep(1) print "Hata wall_getComments try ",recurce com = wall_getComments(vk,owner_id,post_id,count,recurce = recurce+1) return com def wall_get(vk,owner_id,offset,count,recurce = 0): if (recurce ==20): return try: res = vk.get("wall.get", Owner_id=owner_id,offset=offset,count=count) hariç: time.sleep(1) print "Error wall_get try ",recurce res = wall_get(vk,owner_id,offset,count,recurce = recurce +1) return res def users_get(vk,uids,fields,recurce = 0): if (recurce ==20): return try: res = vk.get("users.get",uids=uids,fields="photo") hariç: time.sleep(1) print "Error users_get try ",recurce res = users_get(vk,uids,fields,recurce = recurce +1) res def group_getById(vk,group_ids,recurce = 0): if (recurce ==20): return try: res = vk.get("groups.getById", group_ids= group_ids) hariç): time.sleep(1) print "Error groups_getById try ",recurce res = groups_getById(vk,group_ids,recurce = recurce +1) return res
Bir ağ hatası veya veri alma hatası varsa yarım saniye bekleyip tekrar denerim.

Raporlama ve test etme

Çalışmamın sonucunu Github'da yayınlıyorum. Sen de projeye katıl, benim çalışmamı al, kendi çalışmanı ekle, kendi ihtiyacına göre yeniden yap ve sadece projeyi geliştir.
Ve son olarak, test. Lütfen Python2.X kullanacağımı ve programı çalıştırmaya çalışırken böyle bir şey görürseniz yemin etmeyin:

$ python ./WallCopy.py Dosyası "./WallCopy.py", satır 40 yazdır "%s Failure"%"wall_getComments" ^ SyntaxError: geçersiz sözdizimi
Programı -h anahtarıyla çalıştırırsanız, program sorunları İngilizce olarak yardımcı olur. Tembeller için Rusça'ya çeviriyorum:

  • -e E-POSTA, --email=E-POSTA Yetkilendirme için e-posta
  • -p ŞİFRE, --passwd=ŞİFRE Yetkilendirme şifresi, eğer açıkça belirlemediyseniz, program yürütme sırasında sizden şifreyi girmenizi isteyecektir.Elbette şifre görünmez olacaktır.
  • -i GID, --groupid=GID Duvarını indirmek istediğiniz grubun kimliği
  • -c SAYI, --count=COUNT- indirilecek gönderi sayısı. Ayarlanmadıysa - duvardaki tüm kayıtları indirir.
  • -f OFSET, --offset=OFFSET- indirmeye başlamak için ofset, ayarlanmazsa 0 olur.
  • -s SPLIT_NUM, --split=SPLIT_NUM- indirilen gönderilerin bölüneceği blok sayısı, ayarlanmazsa 1
  • -a APP_ID, --app_id=APP_ID- kaydolurken sahip olduğunuz uygulama kimliği (belirtilmemişse uygulama kimliğim kullanılır)
  • -d İNDİR, --download_all=İNDİR- medyanın yüklenip yüklenmeyeceğini belirleyen bir anahtar. Olası değerler:
    • 0 - İndirme (varsayılan)
    • 1 - ana bilgiler yüklendikten sonra yükle
Tipik kullanım durumu:

python2 ./WallCopy.py -e EMAIL -i GROUP_ID

Bu, duvardaki tüm gönderileri sıfır ofset ile yükleyecektir, ancak bağlantılar mutlak kalacaktır. Program interaktif modda şifreyi soracak ve diğer seçenekler varsayılan değerlerini alacaktır.

Genişletilmiş kullanım durumu:

python2 ./WallCopy.py -ee-posta-p ŞİFRE -i GROUP_ID -c 1000 -f 500 -s 8 -a APP_ID-d1

Aynı zamanda 1000 gönderi 500 ofset ile yüklenecek ve 8 cilde bölünecek ve müzikli resimler bilgisayara indirilecektir.

Bu aşamada, programın desteklemediği, ancak istediği birçok şey var:

  1. Yalnızca fotoğraf yükleyin ve müziği yok sayın;
  2. Vk'de daha benzer tasarım;
  3. Önizleme Videosu;
  4. Linux gereksinimi (wget)
  5. Yalnızca Python 2.X desteği
  6. OOP'yi kullanma
Bu konuda, belki de her şey. Daha iyi tasarım için geri bildirim ve yetenekli HTML kodlayıcılardan çok memnun olacağım.