Last active
September 7, 2019 14:54
-
-
Save berkaycagir/49ca7466ed2e2729f98b080857508501 to your computer and use it in GitHub Desktop.
UPS Türkiye pasaport gönderim sorgulayıcı
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
MAIL_FROM = "enter from mail here" | |
MAIL_FROM_PASSWORD = "enter from mail password here" | |
MAIL_TO = "enter to mail here" | |
SMTP_SERVER = "enter smtp server address here" | |
SMTP_SERVER_PORT = -1 # enter smtp server port here | |
CONSULATE = "159034 for Istanbul, 159829 for Ankara" | |
PASSPORT = "enter your passport number here (e.g. U12345678)" | |
START_DATE = "enter the start date (e.g. 10.8.2019)" | |
END_DATE = "enter the end date (e.g. 20.8.2019)" | |
import requests, re, smtplib | |
from email.mime.text import MIMEText | |
def sendMail(): | |
msg = MIMEText("vizen cikti!!!!!") | |
msg['Subject'] = "vizen cikti!!!!" | |
msg['From'] = 'vize botu <' + MAIL_FROM + '>' | |
msg['To'] = MAIL_TO | |
s = smtplib.SMTP(SMTP_SERVER, SMTP_SERVER_PORT) | |
s.login(MAIL_FROM, MAIL_FROM_PASSWORD) | |
s.sendmail(MAIL_FROM, [MAIL_TO], msg.as_string()) | |
s.quit() | |
def main(): | |
url = "http://www.ups.com.tr/PasaportSorgu.aspx" | |
initial_request = requests.get(url) | |
m = re.search('\<input type\=\"hidden\" name\=\"__VIEWSTATEGENERATOR\" id\=\"__VIEWSTATEGENERATOR\" value\=\"(\w*)\" \/\>', initial_request.text) | |
viewstategenerator = m.group(1) | |
m = re.search('\<input type\=\"hidden\" name\=\"__VIEWSTATE\" id\=\"__VIEWSTATE\" value\=\"(.*)\" \/\>', initial_request.text) | |
viewstate = m.group(1) | |
param_dict = {'__VIEWSTATEGENERATOR': viewstategenerator.encode("utf-8"), \ | |
'__VIEWSTATE': viewstate.encode("utf-8"), \ | |
'ctl00_MainContent_ButtonSorgula': "Sorgula", \ | |
'ctl00_MainContent_DropDownListKonsoloslukBilgileri': CONSULATE, \ | |
'ctl00_MainContent_TextBoxPasaportVeyaBasvuruNo': PASSPORT, \ | |
'ctl00_MainContent_DateEditBaslangicTarihi': START_DATE, \ | |
'ctl00_MainContent_DateEditBitisTarihi': END_DATE} | |
query_request = requests.post(url, data = param_dict, headers = {"Content-Type": "application/x-www-form-urlencoded"}, allow_redirects=True) | |
if '<script type="text/javascript">alert(' not in query_request.text.encode("utf-8"): | |
sendMail() | |
if __name__ == "__main__": | |
main() |
Hocam. Pasaportunuzu teslim almıştınız siz. Pasaportunuz verilince bu sorgu sayfası düzgün çalışıyor değil mi ?
Evet, pasaport kargoya verilince normal takip sayfasına yönlendiriyor.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hakkında
Bu script, UPS Türkiye'nin pasaport gönderim sayfasını otomatik olarak denetlemek için yazılmıştır.
Gereksinimler
Python 2.7.15+ ile requests, re ve smtplib kütüphaneleri.
Kullanım
Girilmesi gereken bilgiler aşağıdaki gibidir:
MAIL_FROM
: Mail göndermede kullanılacak hesap.MAIL_FROM_PASSWORD
: Mail göndermede kullanılacak hesabın parolası.MAIL_TO
: Mail gönderilecek adres.SMTP_SERVER
: Mail göndermede kullanılacak hesabın SMTP sunucu adresi.SMTP_SERVER_PORT
: Mail göndermede kullanılacak hesabın SMTP sunucu portu.CONSULATE
: Sorgu yapılacak konsolosluk. Bu scriptin yazılma zamanında Almanya İstanbul Başkonsolosluğu için 159034, Almanya Büyükelçiliği (Ankara) için 159829 değerlerinin girilmesi gerekmektedir, zaman içerisinde değişkenlik gösterebilir.PASSPORT
: Pasaport numarası (ör. U12345678).START_DATE
: Başlangıç tarihi (ör. 10.8.2019).END_DATE
: Bitiş tarihi (ör. 20.8.2019).Bu bilgiler girildikten sonra script bir zamanlanmış komut istemcisi ile (ör. GNU/Linux için cron) istenilen aralıklarda çalıştırılmalıdır. Pasaportunuz gönderildiği zaman script size mail atacaktır fakat mail atması otomatik olarak durmayacaktır; kullandığınız zamanlanmış komut istemcisinin ayarlarını düzenleyerek scriptin zamanlı çalışmasını durdurmanız gerekmektedir.
Lisans
Bu script MIT lisansı ile lisanslanmıştır ve kullanımından doğabilecek zararlardan hiçbir mesuliyet kabul edilmemektedir. Riskleri göze alarak kullanınız.