1. Ayyıldız Tim forumu Hariç Hiç Bir şekilde Rütbeli Oldugunu İddaa edenlere inanmayınız..⠀ Ayyıldız Tim Adına Sizden Bilgi Belge TC Kimlik Vb Evrak İsteyenlere Asla Bilgilerinizi Vermeyiniz.

Python Ile Neler Yapabilirsiniz?|bozkurt Beyi

'Python' forumunda BozkurtBeyi57 tarafından 20 Haziran 2018 tarihinde açılan konu

    • Guest
    Katılım:
    19 Haziran 2018
    Mesaj:
    172
    Alınan Beğeniler:
    261

    Özel Mesaj
    • Net ve kolay okunabilen yazımı
    • Çalışma esnasında objelerin özelliklerini inceleyebilme imkanı
    • Kolay anlaşılır nesne tabanlı programlama özellikleri
    • Güçlü ifade yeteneği
    • Modüler yapısı
    • Exception tabanlı hata yönetimi
    • Çok yüksek seviye dinamik veri yapıları
    • Çok geniş kütüphaneleri
    • C veya C++ ile ek modüller yazmanın kolaylığı
    • Diğer programlara kodlama arayüzü olarak dahil edilebiliyor olması
    Bu özelliklerinin yanında, öğrenmesinin bir hayli kolay olmasını da ekleyebiliriz. Bu sebeple bazı üniversitelerde programlamaya giriş dersinde kullanıldığını duymuştum. Ancak şu anda bunu teyit edemiyorum.

    Python öğrenmenin kolaylığını göstermek için, Python ve C++'da birer Hello World örneğine bakalım. Önce C++:

    #include <iostream>
    using namespace std;

    int main()
    {
    cout << "Merhaba Dünya";
    return 0;
    }

    5 satır kod kullanarak ekrana Merhaba Dünya yazdık. Şimdi Python örneğine bakalım:

    print("Merhaba Dünya")

    Çok daha basit değil mi? Artık Python öğrenmeye niyetlendiyseniz, Python ne işe yarar sorusunun cevaplarını aramaya başlayabiliriz.

    Rest API'si oluşturma
    Bu yazının konusu REST olmadığından, bunun bir çeşit mimari olduğunu söylemekle yetineceğim. Günümüzde genellikle web servisleri oluşturmak için kullan bir standard haline gelmiş durumda. Örneğin, twitter APIsi bir RESTful API.

    Python bir rest API'si oluşturmak için çok sık kullanılan bir dil. Flask, eve veya Django gibi frameworkler sayesinde çok kısa bir zamanda web servisinizi kullanıma hazır hale getirebilirsiniz.

    Machine Learning
    Machine Learning, bir veri üzerinden çeşitli algoritmalar yardımıyla birşeyler öğrenme uğraşına verilen genel bir ad. Bunun içine, sınıflandırma (spam tanıma, resim tanıma), regresyon (hisse fiyatları), bölümleme (müşteri grupları oluşturma), gibi çeşitli alanlar giriyor. Machine Learning neredeyse her sektörde uygulama alanı bulabilecek bir disiplin. Machine Learning alanına merak salan kişiler, Hilary Mason ve Andrew Ng kişilerinin takipçisi olabilirler.

    Python için yazılmış scikit-learn adında çok kapsamlı ve güçlü bir machine learning kütüphanesi var. Machine Learning ile alakalı aklınıza (ya da benim aklıma) gelebilecek her türlü algoritma tanımlanmış. Web sitelerinde machine learning örnekleri de bulunmakta.

    Bunun yanında bir de PyBrain var. Son kontrol ettiğimde (muhtemelen 1-2 sene önce) PyBrain daha çok Neural Network algoritmalarına odaklı bir kütüphane idi. Unsupervised Learning alanında gerekli olabilecek çeşitli algoritmalar tanımlanmış durumda.

    Web Uygulamaları
    Web uygulaması (web sitesi de olabilir) geliştirme konusunda Python çokça tercih edilen bir dil. Python ile web geliştiriciliği yapmış herkes Django'yu duymuş, hatta kullanmıştır.

    Django framework'ü içinde ihtiyaç duyabileceğiniz neredeyse herşey dahil edilmiş. Ancak, web uygulamalarınızı geliştirmek için Django'ya bağlı kalmak zorunda değilsiniz. Basit cgi programları yazmaktan, tüm bir server yazmaya kadar çok çeşitli şekillerde Python'u kullanabilirsiniz. Python ile REST APIsi yazabileceğinizi zaten daha önce belirtmiştim.

    Örümcek türü yazılımlar
    Python, web'i taramak ve veri toplamak için de çok uygun bir dil. Bu konuyu biraz araştırınca, karşıma Scrapy çıkıyor. Dökümanlarından anladığım kadarıyla, Scrapy her şeyi içinde, birçok özelliği hazır bir web tarama ve veri ayıklama kütüphanesi.

    Her zaman olduğu gibi, örümcek türü yazılımlar yazmak için belirli bir kütüphaneye bağlı kalmak zorunda değilsiniz. Örneğin, ben daha önce bu tarz şeyler yapmak istediğimde (basit ihtiyaçlarım doğrultusunda) BeautifulSoup ve requests kütüphanelerini kullarak işimi halletmiştim.

    Ayrıca, bu örümcek türü yazımlarınızı, biraz önce bahsettiğim Machine Learning kütüphaneleriyle yan yana koyup, çok farklı uygulamalar geliştirebilirsiniz. Örneğin, google dediğiniz şey de altı üstü bir örümcek ve bir Machine Learning uygulaması (ayrıca, devasa bir index) den oluşuyor.

    Bilimsel
    Python bilimsel alanda da Matlab'a kafa tutabilecek (belki geçebilecek?) zengin fonksiyonlar sunuyor.

    Python'u bilimsel alanda kullanmak istediğinizde, çeşitli seçenekleriniz mevcut. Hepsi içinde dağıtımlar indirip kurabilirsiniz. SciPy indirme sayfası size temel bilimsel programların içinde bulunduğu çeşitli Python dağıtımlarının bir listesini sunuyor. Buna ek olarak, ihtiyaç duyduğunuz kütüphaneleri ayrı ayrı yükleme imkanınız da mevcut.

    SciPy setinin içinde gelen IPython, Matlab tarzında interaktif bir şekilde Python ile çalışmanıza olanak sağlıyor. Matplotlib ise, verilerinizi görselleştirme imkanı sağlıyor. SciPy setinin içinde, türev, integral, optimizasyon, lineer cebir, istatistik gibi alanlarda ihtiyaç duyabileceğiniz veri tipleri ve işlevsellik sağlanıyor.

    Ben de ara sıra matplotlib kullanıyorum. Arch Linux Paket Grafiği ve Arch Linux Paket Grafiği 2 yazılarımda, matplotlib kullanımına örnek kod bulabilirsiniz.

    Veri Analizi
    Veri analizi konusu aslında az çok Machine Learning ve Bilimsel başlıkları altında anlatılanlarla çakışan bir alan, ancak ayrıca belirtmek istedim. Pandas kütüphanesi, yüksek performanslı kullanımı kolay veri yapıları ve veri analizi özellikleri sunuyor. Böylece, R veya stata gibi istatistik programlarına ihtiyaç kalmadan, veri analizi ve modelleme yapabilirsiniz. IPython, statsmodels, ve scikit-learn gibi araçlar ve kütüphanelerle bir arada kullanıldığında, performans ve üretkenlik açısında hayli güçlü bir veri analizi ortamı elde edebilirsiniz.

    Ben daha önce Pandas'ı eğlencelik bir projemde kullanmıştım. Şu anda kodlar eski laptop'umda olduğu için örnek gösteremiyorum. Ancak, şöyle anlatayım; önce her tıkladığımda bir dosyaya tıklama zamanımı kaydeden bir programcık yazıp, bunu bilgisayar açıldığında otomatik olarak çalışması için ayarladım. Daha sonra elde ettiğim verileri Pandas'da her dakikada kaç kere tıklandığını gösterecek şekilde grupladım. Sonra bunlardan, bir dakika içinde tıklama sayımın olasılık dağılımı fonksiyonunu çıkarmıştım. Ortalama değeri 5 olan bir poisson dağılımı gibi duruyordu.

    Ağ ve Soket programcılığı
    Bu da biraz Web uygulamalarıyla çakışan bir konu, ancak biraz daha geniş bir alan. Twisted bu yazıda illa ki bahsedilmesi gereken bir kütüphane. Bununla, Web sunucularına ek olarak, internet üzerinden yapılabilecek çok çeşitli uygulamalar geliştirilebilir. Artık mail sunucusu, mail alıcısı, internet üzerinden oynanan oyunlar, ne yazacaksanız elinizin altında Twisted gibi bir kütüphane var.

    Açıkçası ben bu kütüphaneyi hiç kullanmadım, çünkü bu tarz uygulamalar geliştirmeye ihtiyaç duymadım. Ancak, sırf bunun üzerine yazılmış kitap bulunduğu ve çeşitli yerlerde çok adı geçtiği için, yeterince kapsamlı ve güçlü bir kütüphane olduğunu düşünüyorum. Eğer aranızda Twisted deneyimi olan varsa, paylaşırsa çok hoş olur.

    Sistem Yönetimi
    Bu başlık daha çok linux ile alakalı. Linux sistemlerinde, geleneksel olarak sistem yönetim kodları daha çok kabuk programları aracılığıyla yazılırdı. Ancak şu anda, çoğu (her?) linux sisteminde Python kurulu olarak geliyor. Ve Python, kabuk programlarıyla yapabileceğinizden fazlasını sunduğu için, sistem yönetim programcıkları yazmak için gayet uygun bir dil. osmodülüne bakarsanız, ihtiyaç duyabileceğiniz herşeyin Python'a dahil olarak geldiğini görebilirsiniz.

    Hatırlar mısınız, bir zamanlar Pardus{: rel="nofollow"} vardı. Aslında halen var ama, eski tadı kalmadı. Neyse, pardus'da bir çok sistem aracı Python ile yazılmıştı. Hatta bu biraz genç ve meraklı arkadaşlar üzerinde kafa karışıklığı yaratmış, Python ile işletim sistemi yazıldığı yanılgısı oluşturmuştu. Bu konuya biraz sonra geleceğiz.

    Diğer
    Python'un kullanım alanı çok geniş olduğu için, hepsini tek tek buradan saymam mümkün değil. Benim görüşüme göre, en önemli gördüğüm alanlardan bahsettim. Bu saydıklarımın dışında, veritabanı erişimi, oyun geliştirme ve masaüstü programları geliştirme için de Python kullanılıyor. Ancak, son zamanlardaki görüşüme göre, Python oyun geliştirme ve masaüstü uygulaması (arayüz uygulamarını kastediyorum) geliştirmek için uygun bir değil, ama bu konunun yeri olmadığı için daha sonraya bırakıyorum.

    Ayrıca, Python'un günlük kullanım için de çok uygun bir dil olduğunu söyleyebilirim. Belki benim günlük iş anlayışım sizinkinden biraz farklı olabilir, ancak, şunu belirteyim ki, hızlıca birşey yazıp, çalıştırıp, sonuç almak istediğiniz durumlarda Python sizin diliniz.

    Python ile Ne Yapamazsınız
    Python her ne kadar kullanım alanı çok geniş bir dil olsa bile, Python ile yapamayacağınız şeyler de. Bunun en önemli nedeni, Python'un makine kodlarına derlenen bir dil değil, yorumlanan bir dil olması.

    Makine kodlarına derlenen C gibi diller, çalıştırılmadan önce derlenip makine kodlarına dönüştürülmesi gerekir. Bu derlenme aşaması, yazdığınız kodların, kullandığınız işlemcinin anlayacağı dile dönüştürülmesi demek. Farklı işlemcilerin anladığı, farklı kod setleri olabilir. C derleyiciniz bu dönüşümü kendisi hallediyor.

    Ancak Python kodları makina koduna derlenmez. Eğer bazı yerlerde, Python kodunun derlenmesine ilişkin şeyler duyarsanız, unutmayın ki bu derleme makine diline değil, Python'un anlayacağı bir dile derlenmesi anlamına gelir.

    Bu sebeple, Python kodlarını çalıştırmak için, programlarınızın çalışacağı ortamda bir Python yorumlayıcısı olması şarttır. Muhtemelen bilirsiniz, java'da da durum böyledir. Java kodlarının çalışması için istenen platformda bir java virtual machine kurulu olmalıdır.

    Bu sebeple, Python ile bir işletim sistemi yapamazsınız. Python ile işletim sistemi yapıldığı algısı, zannımca tam olarak bir işletim sisteminin ne olduğu konusundaki bilgisizlikten veya bu konudaki yanlış algılamadan kaynaklanıyor. Öncelikle şunu belirteyim ki, işletim sistemi kullanıcının gözle görebileceği birşey değildir. İşletim sistemi Python yorumlayıcısını çalıştıran şeydir. Yani yazdığınız Python kodlarının Python yorumlayıcısı tarafından yorumlanması için, önce Python yorumlayıcısının bir işletim sistemi tarafından çalıştırılması gerekir.

    İşletim sistemleri, bilgisayar açıldığında ilk çalıştırılan ve makine kodlarından oluşan programlardır. Bu programlar, kullanıcı seviyesindeki programların bilgisayarın kaynaklarını nasıl kullandığını denetler, ve böylece bilgisayarın sorunsuz bir şekilde çalışmasını sağlar.

    Pardus'da Python ile yazılan şey ise, çeşitli sistem araçlarıdır. Bunlar mesela, paket yönetim sistemi, konfigürasyon sistemi gibi çeşitli şeyler olabilir. Bu tarz araçlar, bilgisayarın kullanıcı tarafından kullanılması için gereken ortamı oluştururlar, ancak bunlar işletim sistemi değildir.

    Python'un kısıtlayıcı olabileceği durumlardan bir diğeri de, sistem kullanımı yoğun olan programlar. Ancak, bunun gibi durumlarda, yazılacak kodların optimize edilmesi gereken kısımları, C ile yazılıp eklenti modülü olarak derleniyor. Böylece, performans sorununu da halledebiliyorsunuz. Ayrıca, Cython C eklentisi yazmayı, Python kodu yazmak kadar kolay bir hale getiriyor.
     
    • Guest
    Katılım:
    30 Eylül 2016
    Mesaj:
    1,663
    Alınan Beğeniler:
    1,752

    Özel Mesaj
    Güzel konu elinize sağlık lakin socket programlamada neden socket kütüphanesindrn bahsetmediniz. Twisted kütüphanesini merak ettim araştırayım bakalım. Ayrıca os kütüphanesi tehlikeli onun için subprocess Daha güvenli değil mi sizce. Çünkü subprocess argüman argüman alıyor konut çalıştırırken.
     
    Orion-Pax ve note bunu beğendi.
  1. YegKn51 Guest

    • Guest
    Katılım:
    20 Haziran 2018
    Mesaj:
    10
    Alınan Beğeniler:
    9

    Özel Mesaj
    #include<stdio.h>

    int main() {




    printf("Merhaba Yazilimci\n");
    printf("C proglama dersleri");



    return 0;
    }
    C++ da farklı bir şekilde benim yazı yazdırma kodum şahsen ben bunu kullanıyorum sade ve çok karışık değil
     
    Orion-Pax ve BozkurtBeyi57 bunu beğendi.
  2. note Atıldı

    • Guest
    Katılım:
    20 Nisan 2017
    Mesaj:
    3,716
    Alınan Beğeniler:
    6,803

    Özel Mesaj
    Ekrana merhaba yazarsanız tabi ki karışık değil. Bir de exploit yazın ve inceleyin bakalım nasıl karışık olmuyor.
     
    YegKn51 ve Alparslan5545 bunu beğendi.
  3. dragov Guest

    • Guest
    Katılım:
    10 Ocak 2017
    Mesaj:
    568
    Alınan Beğeniler:
    1,353

    Özel Mesaj
    bazen öyle exploit kaynak kodları çıkıyor ki karşıma :) dilin C olduğunu bile anlayamıyorum. O anlarda assembly daha basit geliyor gözüme. Hiç görmediğim tuhaf tuhaf kütüphaneleri çok fazla görüyoruz exploitlerde (özellikle privilage escalation denilen kernel düzeyinde yazılan local exploitler)
     
    Orion-Pax, Kaank52, note ve 1 kişi daha bunu beğendi.
  4. Andrewww1992 Guest

    • Guest
    Katılım:
    30 Mart 2021
    Mesaj:
    1
    Alınan Beğeniler:
    2

    Özel Mesaj
    Implementing Web Scraping in Python


    Python is a beautiful coding language with a great package ecosystem and very easy to use. It is used for implementing data analysis to server programming. But and in this article, we’ll learn the steps of implementing web scraping in Python using Beautiful Soup - a Python library for extracting data out of HTML and XML files.

    Steps in Web Scraping

    The process of web scraping involves the following steps:


    1. Send an HTTP request to the URL of the target webpage. The server returns the HTML content of the webpage. In our case, a third-party HTTP library for Python-requests is used.

    2. Once you access the HTML content, parsing the data should follow. As the most of the HTML data is nested, we need a parser which can create a nested/tree structure of the HTML data. The most advanced one is html5lib.

    3. Now, we need to navigate and search the parse tree that we created, i.e. tree traversal. For this we’ll use another Python library, Beautiful Soup.

    Installing third-party libraries

    The easiest way to install Python libraries is to use pip - a package management system used for installation and management of software packages written in Python.


    Simply run:


    pip install requests

    pip install html5lib

    pip install bs4


    or download from



    Accessing the HTML content


    To access the HTML content of the target webpage run the following code:


    import requests

    URL = "https://www.passiton.com/inspirational-quotes"

    r = requests.get(URL)

    print(r.content)


    With the above code we


    1. Import the requests library.

    2. Specify the URL of the webpage we want to scrape.

    3. Send HTTP request to the specified URL and save the response from server in a response object called r.

    4. Print r.content to get the raw HTML content of the webpage.

    Parsing the HTML content


    To parse the HTML content, run the following code:


    #This will not run on online IDE

    import requests

    from bs4 import BeautifulSoup


    URL = "http://www.values.com/inspirational-quotes"

    r = requests.get(URL)


    soup = BeautifulSoup(r.content, 'html5lib') # If this line causes an error, run 'pip install html5lib' or install html5lib

    print(soup.prettify())


    The BeautifulSoup library is that is built on the top of the HTML parsing libraries like html5lib, html.parser, etc. So, we can create BeautifulSoup object and specify the parser library at the same time, like in the example above,

    soup = BeautifulSoup(r.content, 'html5lib'), where we create a BeautifulSoup object by passing two arguments:

    • r.content: is the raw HTML content.

    • html5lib: specifying the HTML parser
    So, soup.prettify() is printed to give the visual representation of the parse tree created from the raw HTML content.


    Searching and navigating through the parse tree


    Now, we need to extract the required data from the HTML content. The soup object contains all data in the nested structure, which should be extracted programmatically. As we are dealing with webpage containing quotes, we will create a program to save those quotes and all related data.


    #Python program to scrape website

    #and save quotes from website

    import requests

    from bs4 import BeautifulSoup

    import csv


    URL = "http://www.values.com/inspirational-quotes"

    r = requests.get(URL)


    soup = BeautifulSoup(r.content, 'html5lib')


    quotes=[] # a list to store quotes


    table = soup.find('div', attrs = {'id':'all_quotes'})


    for row in table.findAll('div',

    attrs = {'class':'col-6 col-lg-3 text-center margin-30px-bottom sm-margin-30px-top'}):

    quote = {}

    quote['theme'] = row.h5.text

    quote['url'] = row.a['href']

    quote['img'] = row.img['src']

    quote['lines'] = row.img['alt'].split(" #")[0]

    quote['author'] = row.img['alt'].split(" #")[1]

    quotes.append(quote)


    filename = 'inspirational_quotes.csv'

    with open(filename, 'w', newline='') as f:

    w = csv.DictWriter(f,['theme','url','img','lines','author'])

    w.writeheader()

    for quote in quotes:

    w.writerow(quote)



    If we go through the HTML content of the webpage which we printed using soup.prettify() method and try to navigate to the quotes, we noticed that all the quotes are inside a div container whose id is ‘all_quotes’. So, we find that div element (termed as table in above code) using find() method:

    table = soup.find('div', attrs = {'id':'all_quotes'})

    Now, in the table element, we can notice that each quote is inside a div container whose class is quote. Here, we use findAll() method to return a list of all matching elements. Each quote is now iterated using a variable called row.

    To access the text inside an HTML element, we use .text :

    quote['theme'] = row.h5.text

    Last, all the quotes are appended to the list called quotes.

    To save the data in CSV file, run.

    filename = 'inspirational_quotes.csv'

    with open(filename, 'w', newline='') as f:

    w = csv.DictWriter(f,['theme','url','img','lines','author'])

    w.writeheader()

    for quote in quotes:

    w.writerow(quote)

    Now we have CSV file called inspirational_quotes.csv to save all the quotes.


    So, we considered a very simple example of how to create a web scraper in Python. Try to scrap any other website to practice the basics of web scraping with BeautifulSoup!
     
    Orion-Pax ve Mr-Onion bunu beğendi.

Bu Sayfayı Paylaş