コード例 #1
0
ファイル: service.py プロジェクト: syaffa/autologin-1
def autologin():
    seed_url = request.args.get("seedurl")
    username = request.args.get("username")
    password = request.args.get("password")
    open_in_browser = request.args.get("openinbrowser")

    hash = hashlib.sha1()
    hash.update(str(time.time()))
    db_name = "/tmp/" + hash.hexdigest()[:20] + ".db"

    if not seed_url or not username or not password:
        raise Exception("Missing a needed parameter")

    slfj = ScrapydLoginFinderJob(seed_url, username, password, db_name)
    slfj.schedule()
    slfj.block_until_done()

    al = AutoLogin(db_name)
    auth_info = al.get_auth_headers_and_redirect_url()

    if open_in_browser:

        tmp_response_file = "/tmp/openinbrowser.html"
        f = open(tmp_response_file, "w")
        f.write(auth_info["response_body"].encode("utf-8"))
        webbrowser.open(tmp_response_file, new=2)

    return Response(json.dumps(auth_info), mimetype="application/json")
コード例 #2
0
ファイル: appparser.py プロジェクト: gnadathur/midastouch
 def __init__(self, baseUrl=None, userid=None, driver=None, from_file=None):
     super(TDPositions, self).__init__()
     self.mydriver = driver
     self.diff52Col = "diff_52VsCurrent(%)"
     self.from_file = from_file
     if self.from_file is None:
         self.baseUrl = baseUrl
         self.userId = userid
         al = AutoLogin("system", self.userId, self.mydriver)
         al.logon()
コード例 #3
0
ファイル: TestwebDriver.py プロジェクト: gnadathur/midastouch
def main():
    url0 = "https://invest.ameritrade.com/grid/p/site#r=jPage/cgi-bin/apps/u/GainskeeperStart"
    url = "https://invest.ameritrade.com/grid/p/site#r=jPage/https://gainskeeper.ameritrade.com/amtdGP/GainLoss.aspx?c_name=invest_VENDOR"
    baseurl = "www.tdameritrade.com"
    userid = "36205503"
    mydriver = CustomDriver(CustomDriver.CHROME, baseurl)
    mydriver.initURL()
    al = AutoLogin(baseurl, userid, mydriver)
    al.logon()
    mydriver.getURL(url0)
コード例 #4
0
def index():
    """
    Main app route.
    Hosts form used for testing autologin.
    User can submit credentials and URL,
    authenticated cookies returned.
    Also makes a request using extracted cookies,
    saves the source and allows you to view in browser.
    Useful for checking whether login was successful.
    """
    form = LoginForm(request.form)
    auto_login = AutoLogin()
    login_cookies = None
    login_links = None
    filename = None
    # Process form submission
    if request.method == 'POST' and form.validate():
        msg = 'Login requested for '
        msg += '{} '.format(form.url.data)
        msg += 'with username={} and '.format(form.username.data)
        msg += 'password={}'.format(form.password.data)
        # Grab html for login page
        html_source = auto_login.get_html(form.url.data)
        # Attempt login
        login_cookie_jar = auto_login.auth_cookies_from_html(
            html_source=html_source,
            username=form.username.data,
            password=form.password.data,
            base_url=form.url.data)
        # If we've extracted some cookies,
        # use them to request a page and download html source
        # for viewing in browser,
        if login_cookie_jar is not None:
            download = download_page(form.url.data, auto_login.cookie_jar)
            login_cookies = login_cookie_jar.__dict__
            if download[0] != 'ok':
                flash(download, 'danger')
            else:
                flash(msg, 'success')
                filename = download[1]
        else:
            flash('No login form found', 'danger')
            login_links = auto_login.extract_login_links(html_source)
            if len(login_links) > 0:
                flash('{} login links found'.format(len(login_links)),
                      'success')
            else:
                flash('No login links found', 'danger')
    else:
        flash_errors(form)
    return render_template('index.html',
                           form=form,
                           login_cookies=login_cookies,
                           login_links=login_links,
                           filename=filename)
コード例 #5
0
ファイル: test_autologin.py プロジェクト: zanachka/autologin
def test_login_request():
    al = AutoLogin()
    html = '''
    <form method="POST" action=".">
        <input type="email" name="login">
        <input type="password" name="password">
        <input type="submit" value="Login">
    </form>
    '''
    req = al.login_request(html, username='******', password='******')
    assert req == {
        'body': 'login=admin&password=secret',
        'headers': {b'Content-Type': b'application/x-www-form-urlencoded'},
        'method': 'POST',
        'url': '.'}
    req = al.login_request(html, username='******', password='******',
                           base_url='/login/')
    assert req == {
        'body': 'login=admin&password=secret',
        'headers': {b'Content-Type': b'application/x-www-form-urlencoded'},
        'method': 'POST',
        'url': '/login/'}
コード例 #6
0
def get_login_cookies():
    """
    Simple API for returning login cookies
    """
    if not request.json:
        abort(400)
    if 'url' not in request.json:
        abort(400)
    if 'username' not in request.json:
        abort(400)
    if 'password' not in request.json:
        abort(400)
    auto_login = AutoLogin()
    login_cookie_jar = auto_login.auth_cookies_from_url(
        url=request.json['url'],
        username=request.json['username'],
        password=request.json['password'])

    if login_cookie_jar is not None:
        login_cookies = auto_login.cookies_from_jar(login_cookie_jar)
    else:
        login_cookies = {}

    return jsonify({'cookies': login_cookies}), 201
from autologin import AutoLogin
print("PRESS CTRL-Z to EXIT")
f = open('zmap_output.txt', "r")
lines = f.readlines()
num_lines = sum(1 for line in open('zmap_output.txt'))
#Zmap_output.txt contains list of scanned IPs of Specified Range
f.close()
for i in range(0,num_lines):
 Ip_s = lines[i]
 url ="http://"+Ip_s
 username = '******'
 password = '******'
 al = AutoLogin()
 try:
    cookies = al.auth_cookies_from_url(url, username, password)
    print("Working Url: "+url)
    print(type(cookies))
    with open("output_au.txt",mode='a') as z:
     z.write(str(url)+'\n')
 except:
   print("Try Next Ip: "+url)
   
コード例 #8
0
ファイル: test_autologin.py プロジェクト: zanachka/autologin
 def setUp(self):
     self.al = AutoLogin()
     self.mockserver = MockServer()
     self.mockserver.__enter__()
コード例 #9
0
from autologin import AutoLogin
import warnings
warnings.simplefilter("ignore", DeprecationWarning)

file = open('file.txt',mode='rt')       #file containing list of ip's
for ip in file:
    ip = ip.rstrip()
    url = 'http://'+ip
    username = '******'  #Enter username
    password = '******'  #Enter password
    a = AutoLogin()
    try:
        cookies = a.auth_cookies_from_url(url,username,password)
        print("Login Successful")
        with open('output.txt',mode='a') as output_file:        #output file
            output_file.write(str(ip)+'\n')
    except:
        print("Try Again")


# import requests
#
# file = open('zmap_output.txt',mode='rt')
# for ip in file:
#     ip = ip.rstrip()
#     response = requests.get('http://'+ip, auth=('admin','admin'))
#     with open('output.txt',mode='a') as output:
#         output.writelines(str(response.status_code)+' '+str(ip)+'\n')
コード例 #10
0
def main():
    try:
        autologin = AutoLogin()                     # 实例化登录模块
        rest = autologin.main(GLOBAL_USERNAME,GLOBAL_PASSWORD)# 执行登录
        if rest != "0":                             # 如果返回值不是0
            print rest                              # 打印错误信息
            return
        print "登录模块已完成"
        time.sleep(5)                               # 程序暂停5秒
        autoquery = AutoQuery()                     # 实例化查询模块
                                                    # 从数据库查询信息并格式化数据
        format_data = autoquery.query_code(GQD["date"],GQD["from"],GQD["to"])
        a = 1
        while True:                                 # 死循环避免出票失败
            while True:                             # 死循环查询列车信息
                try:                                # 防止查询过多出现异常
                    data = autoquery.get_info(format_data)# 获取所有列车信息
                                                    # 获取指定列车信息
                    train_data = autoquery.query_train(GQD["train"],GQD["person"],GQD["seattype"],data)
                    if not train_data:
                        print "第"+str(a)+"次查询"
                        print "相关列车暂无座位"
                        time.sleep(3)
                        a += 1
                    else:
                        break
                except Exception as e:
                    pass
            print train_data
            print "列车数据已获取 执行预定"
            autoorder = AutoOrder()                 # 实例化预定模块
            rest = autoorder.checklogin()           # 判断是否登录
            if rest != "0":
                print rest
                time.sleep(5)
                continue                            # 获取预定页面
            rest = autoorder.destine(train_data[0],GQD["date"],GQD["from"],GQD["to"])
            if rest != "0":
                print rest
                time.sleep(5)
                continue
            token_key = autoorder.get_token()       # 获取token及key
            if token_key == "":
                time.sleep(5)
                continue                            # 获取乘车人信息
            person_list = autoorder.get_person(GQD["person"])
            if not person_list[0]:
                print "乘车人不存在"
                time.sleep(5)
                continue
            time.sleep(3)                           # 发送乘车人请求 格式化乘车人信息字符串
            person_info = autoorder.order_person_submit(GQD["seattype"],person_list,token_key)
            if person_info == "seat error":
                print "没有相应座位"
                time.sleep(5)
                continue                            # 发送车次信息
            rest = autoorder.order_train_submit(GQD["date"],train_data,person_info,token_key)
            if rest == "count error":               # 判读座位是否为空
                print "没有相关座位"
                time.sleep(5)
                continue
            elif rest != "0":
                print "车次提交失败"
                time.sleep(5)
                continue                            # 最后提交预定信息
            rest = autoorder.order_submit(person_info,token_key,train_data)
            if rest == "0":
                print "订单提交成功"
                rest = autoorder.queue_submit(token_key)# 查询订单结果 返回结果
                if rest == "0":
                    print rest
                    break
                else:
                    print rest
                    print "获取订单失败"
    except Exception as e:
        print e
        rest = sendemail("火车票预定异常")
        print rest
    else:
        print "预定成功 请及时登录12306支付订单"
        rest = sendemail("火车票预定情况")
        print rest