Google PDF İndirme

Google Docs, Google’un epey çokca bulunan bulut hizmetlerinden sadece biri. Burda bildiğiniz üzere envai çeşit dökümanları düzenleme ve paylaşma imkanına sahibiz.

Paylaşım yaparken güvenlik de önemli bir etken tabiki. Eğer görüntüleme yetkisi vermediğimiz birisi bizim dökümana erişmeye çalışırsa aşağıdakine benzer bir ekran görecektir.

izin

Peki görüntüleme iznimiz varsa fakat indirme engellendiyse.

izin3

İşte bu durumda ilgili dökümanı görüntüleme izni olan biri açtığında NŞA’da indirme yapamayacaktır.

Bu kadar Google Docs eğitiminden sonra olayımıza dönersek  😉

Bu PDF bana lazım! Nasıl indireceğim ?  sorularının cevabına gelelim.

1- Olay Yeri İnceleme

  • Bu PDF browserda nasıl görüntüleniyor ki acaba?
    • Indirme linkini Google belki sayfada unutmuştur  ordan bulur bir şeyler serviste de kontrol yoksa indiririz 😛
    • Muhtemelen JavaScript’ler akıyordur  :mrgreen:  (Ya obfuscated ise ? )
    • Resim olabilir.
    • vs

Tüm bu akıldakı sorulara yardım yine geliştiri araçlarından geliyor.

Sayfayı aşağıya doğru scroll ettikçe belgenin yüklendiğini görüyoruz.  Ayrıca JavaScriptlerin içerisinden çıkmak oldukça zor o yüzden fazla kasmadan “Networks” tabına geçiş yaparak bu scroll edince acaba ne oluyor ki diye bakıyoruz.

izin4

O da ne 🙄 ?

İncelemeye devam…

izin5

 

Anlaşıldığı üzere bayağı GET request ile ilgili sayfamızın resmini Google abi bize dönüyor 🙂

 

Bu request URLsi ise : https://drive.google.com/viewerng/img?id=ACFrOgDZ24CTOuTnAmnLTf-P_pQhCycVfMBU-_yS-pM5hEMa2mnOmHJcM3os-dRJiP5tyVLAiDgFwsG4sqeyMhQ-N0n9GzKV9Rl2oLMz0Sty8kYlyK9Eag4C2lYwOg0=&u=0&w=800&webp=true&page=10

bayağı karmaşık Id değerleri vs olsa da page ile oynayınca o sayfanın geldiğini görüyoruz  :mrgreen:  O kadar Id koymuşsun page’i de Hash yapsana ! (iyi ki yapmamış 🙂 )

2- Kodlama

Birden çok yöntem olabileceği gibi basitçe HttpWebRequest sınıfını kullanarak sayfaya talepte bulunup gelen stream veriyi de Image sınıfı aracılığıyla kayıt edelim. 

Request URL’si karmaşık Id değerleri ile geçici olarak oluşturulduğu için uygulama içerisinden o sayfaya önce giriş yapmanız gerekebilir. Giriş yaptıktan sonra ilk aşamadaki yöntemle tekrar url’inizi öğrenebilirsiniz. Eğer giriş yapmadan .Net uygulama içerisinde istekte bulunmak istiyorsanız Internet Explorer ile PDF ‘in olduğu sayfada request url‘ini öğrenmeniz yeterlidir.

PDF’in 59 sayfa oldugunu varsayalım. Buna göre aşağıdakine benzer basit bir kod ile sayfaları indirelebiliriz.

Örnek çıktı:

izin6

Artık elinizde istediğiniz PDF’in resim hali mevcut, yazı halini ister OCR araçları isterseniz de HAP(Html Agility Pack) ile elde edebilirsiniz.

Resimlerden PDF oluşturmak için de kod yazabilir ya da online siteleri (bkz: https://online2pdf.com/convert-images-to-pdf) kullabilirsiniz.