Beispiel #1
0
    def login(self, **kwargs):

        ProvinceID = '10'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key

        url = 'http://www.189.cn/dqmh/my189/checkMy189Session.do'
        data = {
            'fastcode': '20000846'
        }
        code, key, resp = self.post(url, data=data)
        if code != 0:
            return code, key

        headers = {
            'Referer': 'http://www.189.cn/dqmh/my189/initMy189home.do',
        }
        url = 'http://www.189.cn/dqmh/ssoLink.do?method=linkTo&platNo=10010&toStUrl=http://hl.189.cn/service/zzfw.do?method=ywsl&id=10&fastcode=20000846&cityCode=hl'
        code, key, resp = self.get(url, headers=headers)
        if code != 0:
            return code, key

        final_url = 'http://hl.189.cn/service/zzfw.do?method=ywsl&id=10&fastcode=20000846&cityCode=hl'
        for retry in xrange(self.max_retry):
            code, key, resp = self.get(final_url)
            if code != 0:
                return code, key
            if u'发送随机短信密码' in resp.text:
                return 0, "success"
            else:
                pass
        else:
            self.log('crawler', 'request_error', resp)
            return 9, 'website_busy_error'
Beispiel #2
0
    def login(self, **kwargs):

        ProvinceID = '02'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key
        cookie_url ="http://www.189.cn/login/skip/ecs.do?method=skip&platNo=93507&toStUrl=http://service.sh.189.cn/service/query/detail"
        code, key, cookie_req = self.get(cookie_url)
        return code, key
Beispiel #3
0
    def login(self, **kwargs):

        ProvinceID = '14'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key

        url = 'http://www.189.cn/login/sso/ecs.do?method=linkTo&platNo=10014&toStUrl=http://fj.189.cn/newcmsweb/commonIframe.jsp?URLPATH=/service/bill/index.jsp?TYPE=detail&fastcode=01420651&cityCode=fj'
        code, key, response = self.get(url)
        if code != 0:
            return code, key
        return 0, "success"
Beispiel #4
0
 def login(self, **kwargs):
     ProvinceID = '23'
     code, key = login_unity(self, ProvinceID, **kwargs)
     if code != 0:
         return code, key
     """
     手动重定向至四川电信URL:
     """
     cookie_url = "http://www.189.cn/login/sso/ecs.do?method=linkTo&platNo=10023&toStUrl=http://sc.189.cn/service/accounthome/index.jsp?fastcode=20000511&cityCode=sc"
     code, key, resp = self.get(cookie_url)
     if code != 0:
         return code, key
     return 0, "success"
Beispiel #5
0
    def login(self, **kwargs):

        ProvinceID = '16'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key


        url = 'http://www.189.cn/dqmh/ssoLink.do?method=linkTo&platNo=10016&toStUrl=http://sd.189.cn/selfservice/account/returnAuth?columnId=0211'
        code, key, resp = self.get(url)
        if code != 0:
            return code, key

        return 0, "success"
Beispiel #6
0
    def login(self, **kwargs):

        ProvinceID = '04'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key

        url = 'http://www.189.cn/dqmh/ssoLink.do?method=linkTo&platNo=10004&toStUrl=http://cq.189.cn/new-bill/bill_xd?fastcode=02031273&cityCode=cq'
        code, key, response = self.get(url)
        if code != 0:
            if not isinstance(response, str):
                if response.status_code == 404:
                    key = 'website_busy_error'
            return code, key
        return 0, "success"
Beispiel #7
0
    def login(self, **kwargs):
        ProvinceID = '27'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key

        cookie_url = "http://www.189.cn/dqmh/ssoLink.do?method=linkTo&platNo=10027&toStUrl=http://sn.189.cn/service/bill/fee.action?type=ticket&fastcode=10000202&cityCode=sn"
        for each in range(3):
            code, key, cookie_req = self.get(cookie_url)
            if code != 0:
                pass
            else:
                break
        else:
            return code, key
        return 0, "success"
Beispiel #8
0
 def login(self, **kwargs):
     ProvinceID = '08'
     code, key = login_unity(self, ProvinceID, **kwargs)
     if code != 0:
         return code, key
     COOKIE_URL = "http://www.189.cn/dqmh/ssoLink.do?method=linkTo&platNo=10005&toStUrl=http://ln.189.cn/group/bill/bill_detail.do?fastcode=01650722&cityCode=ln"
     code, key, cookie_req = self.get(COOKIE_URL)
     if code != 0:
         return code, key
     # print cookie_req.history,cookie_req.url
     if '本机短信验证码' in cookie_req.text:
         return 0, "success"
     elif u'欢迎登录' in cookie_req.text or cookie_req.url == LOGIN_URL:
         self.log('crawler', 'request_error', cookie_req)
         return 9, 'request_error'
     else:
         self.log('crawler', 'unknown_error', cookie_req)
         return 9, "unknown_error"
Beispiel #9
0
    def login(self, **kwargs):
        ProvinceID = '03'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key

        cookie_url = "http://www.189.cn/dqmh/my189/initMy189home.do?fastcode=02251361"
        code, key, cookie_req = self.get(cookie_url)
        if code != 0:
            return code, key
        # 域名跳转url
        jump_url = 'http://www.189.cn/login/sso/ecs.do?method=linkTo&platNo=10002&toStUrl=http://tj.189.cn/tj/service/bill/feeQueryIndex.action?tab=6&fastcode=02251361&cityCode=tj'
        code, key, resp = self.get(jump_url)
        if code != 0:
            return code, key
        if "window.location='http://tj.189.cn/tj/service/bill/feeQueryIndex.action" in resp.text:
            return 0, "success"

        else:
            self.log('crawler', 'html_error', resp)
            return 9, 'html_error'
Beispiel #10
0
    def login(self, **kwargs):
        url = "http://login.189.cn/web/login/ajax"
        headers = {
            "X-Requested-With": "XMLHttpRequest",
            "Referer": "http://login.189.cn/web/login"
        }
        data = {"m": "checkphone", "phone": kwargs['tel']}
        code, key, resp = self.post(url, headers=headers, data=data)
        if code != 0:
            return code, key, ""
        try:
            da = resp.json()
            self.areaCode = '0' + da['areaCode']
        except:
            error = traceback.format_exc()
            self.log("crawler", "获取地区码失败{}".format(error), resp)
            return 9, "website_busy_error", ""

        ProvinceID = '17'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key
        """
        手动重定向至河南电信URL:
        """
        cookie_url = "http://www.189.cn/dqmh/ssoLink.do?method=linkTo&platNo=10017&toStUrl=http://ha.189.cn/service/iframe/feeQuery_iframe.jsp?SERV_NO=FSE-2-2&fastcode=20000356&cityCode=ha"
        # headers = {"Referer": url}
        code, key, resp = self.get(cookie_url)
        if code != 0:
            return code, key
        if u'欢迎登录' not in resp.text:
            return 0, "success"
        # 跳转到登录界面,且没有错误代码,报官网繁忙。
        elif 'data-resultcode=""' in resp.text:
            self.log('website', 'website_busy_error', resp)
            return 9, 'website_busy_error'
        else:
            self.log('crawler', 'unknown_error', resp)
            return 9, "unknown_error"
Beispiel #11
0
    def login(self, **kwargs):
        start_url = 'http://www.189.cn/dqmh/my189/initMy189home.do'
        code, key, resp = self.get(url=start_url)
        if code != 0:
            return code, key

        ProvinceID = '12'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key

        bill_panel_url = 'http://zj.189.cn/shouji/%s/zhanghu/xiangdan/' % kwargs[
            'tel']
        code, key, resp = self.get(url=bill_panel_url)
        if code != 0:
            return code, key
        LOGIN_URL = 'http://login.189.cn/web/login'
        if u'欢迎登录' in resp.text or resp.url == LOGIN_URL:
            self.log('user', 'login_param_error', resp)
            return 1, 'login_param_error'
        # print login_req.text
        return 0, 'success'
Beispiel #12
0
    def login(self, **kwargs):

        ProvinceID = '07'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key

        cookie_url = 'http://nm.189.cn/selfservice/service/userLogin'
        cookie_data = {
            "number": kwargs['tel'],
            "intLoginType": "4",
            "areaCode": "0471",
            "isBusinessCustType": "N",
            "identifyType": "B",
            "userLoginType": "4",
            "password": "",
            "randomPass": "",
            "noCheck": "N",
            "isSSOLogin": "******",
            "sRand": "SSOLogin"
        }
        code, key, resp = self.post(cookie_url, data=json.dumps(cookie_data))
        if code != 0:
            return code, key
        personal_info_url = 'http://www.189.cn/dqmh/userCenter/userInfo.do?method=editUserInfo_new&fastcode=10000557&cityCode=nm'
        for retry in xrange(self.max_retry):
            code, key, tel_info_res = self.get(personal_info_url)
            if code != 0:
                return code, key
            if u'真实姓名' in tel_info_res.text:
                self.info_res = tel_info_res.text
                return 0, "success"
            else:
                pass
        else:
            self.log('crawler', "request_error", tel_info_res)
            return 9, "website_busy_error"
Beispiel #13
0
    def login(self, **kwargs):
        LOGIN_PARAMS_URL = "http://login.189.cn/login/ajax"
        login_params_data = {'m': 'checkphone', 'phone': kwargs['tel']}
        code, key, resp = self.post(LOGIN_PARAMS_URL, data=login_params_data)
        if code != 0:
            return code, key
        # 这个地方 账号不存在 的话会返回空
        if not resp.text:
            self.log('user', 'invalid_tel', resp)
            return 1, 'invalid_tel'
        try:
            login_params_res = resp.json()
            if login_params_res.get('areaCode'):
                self.AreaCode = login_params_res.get('areaCode')
            else:
                self.log('crawler', 'crawl_error', resp)
                return 9, "crawl_error"
        except:
            error = traceback.format_exc()
            self.log('crawler', 'json_error:{}'.format(error), resp)
            return 9, "json_error"

        home_url = 'http://www.189.cn/dqmh/my189/initMy189home.do?fastcode=01941229'
        code, key, resp = self.get(home_url)
        if code != 0:
            return code, key

        ProvinceID = '25'
        code, key = login_unity(self, ProvinceID, **kwargs)
        if code != 0:
            return code, key

        test_url = 'http://www.189.cn/dqmh/my189/initMy189home.do?fastcode=01941229'
        header = {
            'Referer': 'http://www.189.cn/yn/',
            'Upgrade-Insecure-Requests': '1'
        }
        code, key, res = self.get(test_url, headers=header)
        if code != 0:
            return code, key
        if u'详单查询' in res.text:
            COOKIE_URL = "http://www.189.cn/dqmh/ssoLink.do?method=linkTo&platNo=10025&toStUrl=http://yn.189.cn/service/jt/bill/qry_mainjt.jsp?SERV_NO=SHQD1&fastcode=01941229&cityCode=yn"

            code, key, cookie_req = self.get(COOKIE_URL)
            if code != 0:
                return code, key

            PROD_PARAMS_URL = "http://yn.189.cn/service/jt/bill/qry_mainjt.jsp?SERV_NO=SHQD1&fastcode=01941229&cityCode=yn"
            header = {'Referer': cookie_req.url}

            flag = True
            for retry in range(3):
                code, key, resp = self.get(PROD_PARAMS_URL, headers=header)
                if code != 0:
                    if retry == 2:
                        return code, key
                    continue

                prod_params_data = re.findall(
                    "doQuery\('(\d{11})','(\d{4})','(\d{4})','','(\d+)','(\d+)',",
                    resp.text)
                if prod_params_data:
                    flag = False
                    break
            if flag:
                self.log('website', 'website_busy_error', resp)
                return 9, 'website_busy_error'
            try:
                self.prod_no = prod_params_data[0][2]
                self.user_id = prod_params_data[0][4]
            except:
                error = traceback.format_exc()
                self.log('crawler', 'expected_key_error:{}'.format(error),
                         resp)
                return 9, "expected_key_error"
            LOGIN_PARAMS_URL = "http://yn.189.cn/service/jt/bill/actionjt/ifr_bill_detailslist_new.jsp"
            login_params_data = {
                "NUM": kwargs['tel'],
                "AREA_CODE": prod_params_data[0][1],
                "PROD_NO": prod_params_data[0][2],
                "USER_NAME": "",
                "ACCT_ID": prod_params_data[0][3],
                "USER_ID": prod_params_data[0][4]
            }
            header = {
                'X-Requested-With':
                'XMLHttpRequest',
                'Referer':
                'http://yn.189.cn/service/jt/bill/qry_mainjt.jsp?SERV_NO=SHQD1&fastcode=01941229&cityCode=yn'
            }
            code, key, resp = self.post(LOGIN_PARAMS_URL,
                                        data=login_params_data,
                                        headers=header)
            if code != 0:
                return code, key
            if u'客户姓名' in resp.text:
                return 0, "success"
            else:
                self.log('crawler', 'expected_key_error', resp)
                return 9, "expected_key_error"
        else:
            if u'<title>电信账号登录</title>' in res.text or '<img src="/dqmh/errors/images/error_content_busy.png" />' in res.text:
                # error_content_busy.png 很抱歉, 目前系统繁忙, 请稍后再试
                self.log("crawler", 'website_busy_error', res)
                return 9, 'website_busy_error'
            else:
                self.log('crawler', 'html_error', res)
                return 9, 'html_error'
Beispiel #14
0
 def login(self, **kwargs):
     ProvinceID = '19'
     code, key = login_unity(self, ProvinceID, **kwargs)
     return code, key