Python ile Hava Durumu Bilgisi

Python kullanarak openweathermap.org sitesinin API arayüzünü kullanarak hava durumu bilgisi alabilirsiniz. İlk olarak siteye üye olup bir API key oluşturmanız gerekiyor. Daha sonra aşağıda bulunan Python scripti kullanarak istediğiniz yerin hava durumu bilgisini alabilirsiniz.

Python Kod;

import requests, json 

api_key = "KEY"
base_url = "http://api.openweathermap.org/data/2.5/weather?"
city_name = "İstanbul
complete_url = base_url + "appid=" + api_key + "&units=metric&q=" + city_name 
response = requests.get(complete_url) 
x = response.json() 
if x["cod"] != "404": 
    data = json.loads(response.text)
    print(data)
    coord_lon=data["coord"]["lon"]
    coord_lat=data["coord"]["lat"]
    weather_id=data["weather"][0]["id"]
    weather_main=data["weather"][0]["main"]
    weather_description=data["weather"][0]["description"]
    weather_icon=data["weather"][0]["icon"]
    base=data["base"]
    main_temp=data["main"]["temp"]                  #Metric: Celsius
    main_feels_like=data["main"]["feels_like"]      #Metric: Celsius
    main_temp_min=data["main"]["temp_min"]          #Metric: Celsius
    main_temp_max=data["main"]["temp_max"]          #Metric: Celsius
    main_pressure=data["main"]["pressure"]          #Atmospheric pressure hPa
    main_humidity=data["main"]["humidity"]          #%
    visibility=data["visibility"]
    wind_speed=data["wind"]["speed"]                #Default: meter/sec
    wind_deg=data["wind"]["deg"]                    #deg
    clouds_all=data["clouds"]["all"]                #Cloudiness, %
    dt=data["dt"]
    sys_type=data["sys"]["type"]
    sys_id=data["sys"]["id"]
    sys_country=data["sys"]["country"]
    sys_sunrise=data["sys"]["sunrise"]
    sys_sunset=data["sys"]["sunset"]
    timezone=data["timezone"]
    id=data["id"]
    name=data["name"]
    cod=data["cod"]
    print(coord_lon, coord_lat, weather_id, weather_main, weather_description, weather_icon, base, main_temp, main_feels_like, main_temp_min, main_temp_max, main_pressure,
          main_humidity, visibility, wind_speed, wind_deg, clouds_all, dt, sys_type, sys_id, sys_country, sys_sunrise, sys_sunset,
          timezone, id, name, cod)
else: 
    print("City Not Found ")

Hava durumu API http://api.openweathermap.org/

PHP if else

PHP kod içerisinde bir değişkenin değerine göre bazı alanları gösterip bazı alanları göstermeyebilirsiniz. Bu işlemler içinde geçerlidir. PHP ile aşağıdaki gibi bir değişkenin değerine bağlı olarak istediğiniz işlemler arasında tercih yapabilirsiniz.

<?php

if ((empty($_GET['degisken']))){

<Değişkene bir değer atanmadıysa işlenecek alan>

echo "Değişkene atanan bir değer yok";

} else {

?>

<Değişkenin bir değeri varsa işlenecek alan>

echo "Değişkene atanan bir değer var";

<?php }} ?>

      

PHP ile Oracle Veri Tabanına Nasıl Bağlanılır (Apache)

PHP üzerinden Oracle veri tabanına nasıl bağlanılacağına değineceğiz. XAMPP sunucusu üzerinde bulunan Apache serverdan faydalanarak Oracle database'e nasıl erişebiliriz?

İlk olarak PHP info sayfasına bakalım.

 http://localhost/dashboard/phpinfo.php

Bu sayfada bulunan iki değerin karşılığının ne olduğuna bakmalıyız

Architecture x86 veya x64 olacaktır.

Thread Safety enabled

Architecture değeri bendeki gibi x86 görünüyorsa 32bit bir PHP sürümüne sahipsiniz demektir. Thread Safety değeri mutlaka enable olmalıdır.

İlk olarak PHP.ini dosyası içinde aşağıdaki kaydın olup olmadığını kontrol edin açık değilse açın.

PHP 7.2den eski sürümler için

extension=oci8_12c

PHP 7.2'den sonraki sürümler için

extension=oci8_12c.dll

Ayrıca dosyaların bulunduğu dizinin php.ini dosyası içinde açık olduğundan emin olun.

extension_dir="D:\xampp\php\ext"

Oracle Instant Client Basic paketini internetten indirin.

http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html

Windows x86 için 32bit, x64 için 64bit sayfasındaki "instantclient-basic-nt-12.2.0.1.0.zip" dosyasını indirmelisiniz. İndirdiğiniz dosyayı diskinizde bir klasör oluşturarak içine kopyalayın

D:\Oracle\instantclient_12_2

Bu klasörü sistem path bölümüne ekleyin

Control Panel -> System -> Advanced System Settings -> Advanced -> Environment Variables -> System Variables -> PATH. 

Name : Oracle Değer: D:\Oracle\instantclient_12_2

İnternetten indirdiğiniz instantclient_12_2 klasörünün içindeki *.dll dosyalarını D:\xampp\php ve D:\xampp\apache/bin klasörlerine kopyalayın.

Apache servisini restart ettiğinizde phpinfo dosyasına tekrar bakın. Burada OCI8 extension bölümünün açıldığını göreceksiniz. Bundan sonra test etmeniz yeterli. Aşağıdaki kod ile test edebilirsiniz.

<?php
 
error_reporting(E_ALL);
ini_set('display_errors', 'On');
 
$username = "hr";                  // Use your username
$password = "welcome";             // and your password
$database = "localhost/orclpdb";   // and the connect string to connect to your database
 
$query = "select * from dual";
 
$c = oci_connect($username, $password, $database);
if (!$c) {
    $m = oci_error();
    trigger_error('Could not connect to database: '. $m['message'], E_USER_ERROR);
}
 
$s = oci_parse($c, $query);
if (!$s) {
    $m = oci_error($c);
    trigger_error('Could not parse statement: '. $m['message'], E_USER_ERROR);
}
$r = oci_execute($s);
if (!$r) {
    $m = oci_error($s);
    trigger_error('Could not execute statement: '. $m['message'], E_USER_ERROR);
}
 
echo "<table border='1'>\n";
$ncols = oci_num_fields($s);
echo "<tr>\n";
for ($i = 1; $i <= $ncols; ++$i) {
    $colname = oci_field_name($s, $i);
    echo "  <th><b>".htmlspecialchars($colname,ENT_QUOTES|ENT_SUBSTITUTE)."</b></th>\n";
}
echo "</tr>\n";
 
while (($row = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "<td>";
        echo $item!==null?htmlspecialchars($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;";
        echo "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Kaynak : https://blogs.oracle.com/opal/installing-xampp-for-php-and-oracle-database



Python Selenium Uygulaması

Python ile herhangi bir web sayfasını açıp, sayfaya login olup, istediğiniz sayfaya gidip, formu doldurup gönderebilirsiniz. Bunu sağlayabilen selenium kütüphanesi için Google'ı açıp istediğiniz bir kelimeyi arama yapabilen bir örnek kod paylaşıyorum. Bot yapmak için çok esnek olan bu modülü kullanmanızı tavsiye ederim.

Modülü kullanabilmek için Firefox veya Chrome driver'ını bilgisayarınıza indirip aşağıdaki gibi yerini göstermeniz gerekiyor, kurulum gerektiren bir dosya değil. Aşağıdaki örnek Chrome driver ile yapılmıştır.

-------------------

import time

from selenium import webdriver

driver = webdriver.Chrome('c:\directory\chromedriver.exe')  

driver.get('http://www.google.com/');

time.sleep(5) # Let the user actually see something!

search_box = driver.find_element_by_name('q')

search_box.send_keys('ChromeDriver')

search_box.submit()

time.sleep(5) 

driver.quit()

-------------------

Tüm driver dosyaları için;

https://pypi.org/project/selenium/ 

PHP include hatası

 PHP dosya içerisine herhangi bir PHP veya HTML dosya import edilirken hata alınıyorsa PHP.ini dosyası içinde işletim sistemine göre aşağıdaki konfigürasyonun yapılması gerekir.

Burada sadece bir işletim sistemi seçilmelidir. Kullandığınız işletim sisteminin altındaki kodun başındaki ; işaretini kaldırmalısınız. Aşağıdaki konfigürasyon windows içindir.

include_path bölümüne yazacağınız dizin IIS veya Apache'nin PHP çalıştıracağınız www dizini olmalı.

;;;;;;;;;;;;;;;;;;;;;;;;;

; Paths and Directories ;

;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"

;include_path=C:\XAMPP\php\PEAR

; Windows: "\path1;\path2"

include_path = ".;C:\XAMPP\htdocs"


PHP.ini dosyalarındaki tüm parametreler için;

https://www.php.net/manual/tr/ini.core.php#ini.include-path


Google