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'
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
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"
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"
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"
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"
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"
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"
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'
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"
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'
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"
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'
def login(self, **kwargs): ProvinceID = '19' code, key = login_unity(self, ProvinceID, **kwargs) return code, key