商务网站源码分享免费下载网址(商务网站是什么)

大家好,今天来为大家分享商务网站源码分享免费下载网址的一些知识点,和商务网站是什么的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

。。。

上面是以前写的文章的资源,在以前的文章中有对应的资源,有兴趣的可以去查看。

作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用。使用Python这样的简单编程语言,你可以使用少量编程技能就可以爬取复杂的网站。

如果手机上显示代码错乱,请分享到QQ或者其他地方,用电脑查看!!!

python能干的东西有很多,这里不再过多叙述,直接重点干货。

。。。

重要提醒:要运行,需要确认安装环境:Python2.7,还是Python3.x。

缺少的包,采用命令行:pipinstall包名

进行安装,不然运行不了。

主要源码:

用户信息配置:

配置信息很重要,一定不要弄错了,不然不能成功!各种帐号密码,电话,姓名,身份证。

账户信息\nuser=’帐号’\npasswd=’密码’\n忽略的车次\ng_ingnore_list=[“L74″]\n乘客信息\ng_passengers=[\n{\n”name”:u”姓名”,\n”id”:”身份证”,\n”tel”:”电话”,\n},\n]\n”’\ng_str_seat_types={\nu”高级软卧”:”gr_num”,\nu”软卧”:”rw_num”,\nu”软座”:”rz_num”,\nu”特等座”:”tz_num”,\nu”无座”:”wz_num”,\nu”硬卧”:”yw_num”,\nu”硬座”:”yz_num”,\nu”二等座”:”ze_num”,\nu”一等座”:”zy_num”,\nu”商务座”:”swz_num”,\n}\n”’\n自动识别验证码次数,验证码无重叠无背景时候识别率高,基于tesseract的OCR\n可以找到这种服务器并修改host让其一直连接此服务器\n刷新间隔\ng_query_sleep_time=1\nimporthttp.httplib\nimporthttp.client\nimportgzip\nfromioimportStringIO;\nimporttraceback\nimportlogging\nimportdatetime\nimportcProfile\nimportsubprocess\nfromconf_frankie_testimport*\nfromconf_exampleimport*\n\ng_str_train_types={\n”G”:u”高铁”,\n”L”:u”临客”,\n”D”:u”动车”,\n”Z”:u”直达”,\n”T”:u”特快”,\n”K”:u”快速”,\n}\nrestartconn\ndefrestart_conn(conn):\nprint(“restartconnection”)\nconn.close()\nconn=http.client.HTTPConnection(‘kyfw.12306.cn’,timeout=100)\nconn.connect()\ntries.reverse()\nfortries_remainingintries:\ntry:\nreturnfunc(*args,**kwargs)\nexcepthttp.client.HTTPExceptionase:\nprint(“connecionterror”)\nrestart_conn(conn)\nexceptExceptionase:\niftries_remaining>0:\ntraceback.print_exc()\nlogger.error(“errror%d”%tries_remaining)\nlogger.error(traceback.format_exc())\nelse:\nraisee\nelse:\nbreak\nreturnf2\nreturndec\n”,\n”Accept-Language”:”zh-cn”,\n”Accept-Encoding”:”gzip,deflate”,\n”Connection”:”Keep-Alive”,\n”Cache-Control”:”no-cache”,\n”User-Agent”:”Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0)”,\n”Content-Type”:”application/x-www-form-urlencoded;charset=UTF-8″,\n}\nself.proxy_ext_header={\n”Accept”:”*/*”,\n”X-Requested-With”:”XMLHttpRequest”,\n”Referer”:”http://kyfw.12306.cn/otn/login/initcockies\nself.sid=”\nself.sip=”\nusedtoPOST\nself.globalRepeatSubmitToken=”\nself.key_check_isChange=”\nself.orderId=”\nself.pass_code=’abcd’\nself.rand_code=’abcd’\nreturn\ndefconstruct_passengerTicketStr(self):\nprint(“”)\nstr1=”\nstr2=”\nforping_passengers:\nstr1=str1+’1,0,1,’+p[‘name’]+’,1,’+p[‘id’]+’,’+p[‘tel’]+’,N_’\nstr2=str2+p[‘name’]+’,1,’+p[‘id’]+’,1_’\nstr1=str1[:-1]\nself.passengerTicketStr=str1.encode(‘utf8’)\nself.oldPassengerStr=str2.encode(‘utf8’)\nprint(“new:%s”%self.passengerTicketStr)\nprint(“old:%s”%self.oldPassengerStr)\ndeflogout(self):\nurl_logout=”http://kyfw.12306.cn/otn/login/loginOut”\ng_conn.request(‘540’,url_logout,headers=self.proxy_ext_header)\nreturnTrue\ndef__del__(self):\nself.logout()\nprint(“closeconnnection”)\ng_conn.close()\nreturn\ndefupdate_session_info(self,res):\nprint(“processheadercookie”)\nupdate=False\nforhinres.getheaders():\nifh[0]==”set-cookie”:\nl=h[1].split(‘,’)[0].strip()\nifl.startswith(‘JSESSIONID’):\nself.sid=l.split(‘;’)[0].strip()\nupdate=True\nprint(“Updatesessionid”+self.sid)\nifl.startswith(‘BIGipServerotn’):\nself.sip=l.split(‘;’)[0].strip()\nupdate=True\nprint(“Updatesip:”+self.sip)\nl=h[1].split(‘,’)[1].strip()\nifl.startswith(‘BIGipServerotn’):\nself.sip=l.split(‘;’)[0].strip()\nupdate=True\nprint(“Updatesip:”+self.sip)\nreturnupdate\ndefcheck_pass_code_common(self,module,rand_method):\nret=False\nauto_times=g_max_auto_times\nwhile1:\nurl_pass_code=”http://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew?module=%s&rand=%s”%(module,rand_method)\nprint(“sendgetPassCodeNew:%s”%datetime.datetime.now())\nheader=”\nifmodule==’login’:\nheader=self.ext_header\nelse:\nheader=self.proxy_ext_header\ng_conn.request(‘GET’,url_pass_code,headers=header)\nres=g_conn.getresponse()\nprint(“recvgetPassCodeNew=====>:%s”%datetime.datetime.now())\nifmodule==’login’:\nself.update_session_info(res)\nself.ext_header[“Cookie”]=self.sid+’;’+self.sip\nautoreadormanual\nread_pass_code=”\nifg_max_auto_times>0:\nauto_times=auto_times-1\nread_pass_code=call_tesseract(file_name)\nifread_pass_code==”:\nread_pass_code=input(“inputpasscode(%s):”%file_name)\nifread_pass_code==”no”:\nprint(“GetAnewPassCode”)\ncontinue\nelifread_pass_code==”quit”:\nprint(“Quit”)\nbreak\nprint(“input:%s”%read_pass_code)\nelse:\nprint(“auto:%s”%read_pass_code)\nifg_clean_temp:\nos.remove(file_name)\ndata=[]\nifmodule==’passenger’:\nself.proxy_ext_header[“Referer”]=”http://kyfw.12306.cn/otn/confirmPassenger/initDc%post_data\nurl_check_rand=”http://kyfw.12306.cn/otn/passcodeNew/checkRandCodeAnsyn”\ng_conn.request(‘POST’,url_check_rand,body=post_data,headers=header)\nres=g_conn.getresponse()\ndata=res.read()\nprint(“recvcheckRandCodeAnsyn”)\nresp=json.loads(data)\nifresp[‘data’]!=’Y’:\nprint(“statuserror:%s”%resp[‘data’])\ncontinue\nelse:\nret=True\nbreak\nreturnret\n@retries(3)\ndefcheck_pass_code(self):\nprint(“”)\nmodule=’login’\nrand_method=’sjrand’\nreturnself.check_pass_code_common(module,rand_method)\n@retries(3)\ndefcheck_rand_code(self):\nprint(“”)\nret=False\nmodule=’passenger’\nrand_method=’randp’\nreturnself.check_pass_code_common(module,rand_method)\n@retries(3)\ndefloginAysnSuggest(self):\nifnotself.check_pass_code():\nreturnFalse\nprint(“”)\nurl_login=”http://kyfw.12306.cn/otn/login/loginAysnSuggest”\ndata=[\n(“loginUserDTO.user_name”,user),\n(“userDTO.password”,passwd),\n(“randCode”,self.pass_code)\n]\npost_data=urllib.urlencode(data)\n%post_data\ng_conn.request(‘POST’,url_login,body=post_data,headers=self.proxy_ext_header)\nres=g_conn.getresponse()\nprint(“recvloginAysnSuggest”)\ndata=res.read()\nres_json=json.loads(data)\nifres_json[‘status’]!=Trueornotres_json[‘data’].has_key(‘loginCheck’):\nprint(u”returnerror:%s”%”.join(res_json[‘messages’]))\nreturnFalse\nifres_json[‘data’][‘loginCheck’]==’Y’:\nprint(u”loginsuccess”)\nreturnTrue\nelse:\nprint(u”loginerror%s”%res_json[‘data’][‘loginCheck’])\nreturnFalse\ndefshow_ticket(self,it):\nprint(it[‘station_train_code’],it[‘from_station_name’],it[‘to_station_name’],it[‘start_time’],it[‘arrive_time’],it[‘lishi’],\\\nit[‘swz_num’],it[‘tz_num’],it[‘zy_num’],it[‘ze_num’],it[‘gr_num’],it[‘rw_num’],it[‘yw_num’],it[‘rz_num’],it[‘wz_num’],it[‘canWebBuy’])\nreturn\n\nqueryreturnnone,retry\nifnotlen(result):\nreturn-2\nshowall\nfortrain_code,iteminresult.items():\nself.show_ticket(item[‘queryLeftNewDTO’])\nStep3:Query”http://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2014-01-04&leftTicketDTO.from_station=SHH&leftTicketDTO.to_station=NJH&purpose_codes=ADULT”\nq_cnt=0\nwhile1:\nq_cnt=q_cnt+1\ng_conn.request(‘GET’,url_query,headers=self.proxy_ext_header)\nres=g_conn.getresponse()\ndata=”\nifres.getheader(‘Content-Encoding’)==’gzip’:\ntmp=StringIO.StringIO(res.read())\ngzipper=gzip.GzipFile(fileobj=tmp)\ndata=gzipper.read()\nelse:\ndata=res.read()\nres_json=json.loads(data)\nifres_json[‘status’]!=True:\nprint(“parsejsonfailed!data%s”%data)\ncontinue\nresult={}\nret=self.do_ticket(res_json,result,want_special)\nifret==0:\nbreak\nelifret==-2:\nprint(u”noticket,refresh%dtimes!”%q_cnt)\ntime.sleep(g_query_sleep_time)\ncontinue\nreturnTrue\n@retries(3)\ndefconfirmPassenger_get_token(self):\nprint(“”)\nurl_confirm_passenger=”http://kyfw.12306.cn/otn/confirmPassenger/initDc”\ng_conn.request(‘GET’,url_confirm_passenger,headers=self.proxy_ext_header)\nres=g_conn.getresponse()\ndata=res.read()\nifres.getheader(‘Content-Encoding’)==’gzip’:\ntmp=StringIO.StringIO(data)\ngzipper=gzip.GzipFile(fileobj=tmp)\ndata=gzipper.readlines()\nkey_word=”globalRepeatSubmitToken”\nkey_find=False\nline_token=”\nline_request_info=”\nforlineindata:\nifline.startswith(u’varglobalRepeatSubmitToken=’.encode(“utf8”)):\nline_token=line.decode(“utf8”)\ncontinue\nelifline.startswith(u’varticketInfoForPassengerForm’.encode(“utf8”)):\nline_request_info=line.decode(“utf8”)\nkey_find=True\nbreak\nifkey_find:\nself.globalRepeatSubmitToken=line_token.split(‘=’)[1].strip()[1:-2]\nprint(“UpdateglobalRepeatSubmitToken=%s”%self.globalRepeatSubmitToken)\nreq_data=line_request_info.split(‘=’)[1].strip()[:-1]\nreq_data=req_data.replace(“null”,”””)\nreq_data=req_data.replace(“true”,”True”)\nreq_data=req_data.replace(“false”,”False”)\nprint(“line_request_info”)\nreq_json=eval(req_data)\nself.key_check_isChange=req_json[‘key_check_isChange’]\nself.leftTicketStr=req_json[‘leftTicketStr’]\nprint(“Updatekey_check_isChange=%s”%self.key_check_isChange)\nreturnTrue\nelse:\nprint(“globalRepeatSubmitTokennotfound”)\nreturnFalse\n@retries(3)\ndefgetQueueCount(self,item):\nprint(“”)\nurl_queue_count=”http://kyfw.12306.cn/otn/confirmPassenger/getQueueCount”\n%post_data\ng_conn.request(‘POST’,url_queue_count,body=post_data,headers=self.proxy_ext_header)\nres=g_conn.getresponse()\ndata=res.read()\nres_json=json.loads(data)\nprint(“recvgetQueueCount:%s”%res_json)\nifres_json[‘status’]!=True:\nprint(“getQueueCounterror:%s”%res_json)\nreturnFalse\nreturnTrue\n@retries(3)\ndefcheckOrderInfo(self):\nprint(“”)\nurl_check_order=”http://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo”\ndata=[\n(“cancel_flag”,”2″),\n(“bed_level_order_num”,”000000000000000000000000000000″),\n(“passengerTicketStr”,self.passengerTicketStr),\n(“oldPassengerStr”,self.oldPassengerStr),\n(“tour_flag”,”dc”),\n(“randCode”,self.rand_code),\n(“_json_att”,”),\n(“REPEAT_SUBMIT_TOKEN”,self.globalRepeatSubmitToken),\n]\npost_data=urllib.urlencode(data)\nprint(“sendcheckOrderInfo=====>”)\nStep4:checkUser%post_data\ng_conn.request(‘POST’,url_check_info,body=post_data,headers=self.proxy_ext_header)\nres=g_conn.getresponse()\ndata=res.read()\nres_json=json.loads(data)\nprint(“recvcheckUser”)\nifnotres_json[‘data’].has_key(‘flag’)orres_json[‘data’][‘flag’]!=True:\nprint(“checkuserfailed,%s”%res_json)\nreturnFalse\nelse:\nreturnTrue\n@retries(3)\ndefsubmitOrderRequest(self,item):\nprint(“”)\nurl_submit=”http://kyfw.12306.cn/otn/leftTicket/submitOrderRequest”\npost_data=”secretStr=”+item[‘secretStr’]+”&train_date=”\\\n+item[‘queryLeftNewDTO’][‘start_train_date’]\\\n+”&back_train_date=”+item[‘queryLeftNewDTO’][‘start_train_date’]\\\n+”&tour_flag=dc&purpose_codes=ADULT&query_from_station_name=”\\\n+item[‘queryLeftNewDTO’][‘from_station_name’]\\\n+”&query_to_station_name=”+item[‘queryLeftNewDTO’][‘to_station_name’]\\\n+”&undefined”\nprint(post_data)\nprint(“sendsubmitOrderRequest=====>”)Step11:confirmSingleForQueue%post_data\ng_conn.request(‘POST’,url_check_info,body=post_data,headers=self.proxy_ext_header)\nres=g_conn.getresponse()\ndata=res.read()\nres_json=json.loads(data)\nprint(“recvconfirmSingleForQueue”)\nifnotres_json[‘data’].has_key(‘submitStatus’)orres_json[‘data’][‘submitStatus’]!=True:\nprint(u”confirmSingleForQueuefailed,%s”%res_json)\nreturnFalse\nelse:\nreturnTrue\n@retries(5)\ndefqueryOrderWaitTime(self):\nprint(“”)\nurl_query_wait=”http://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?”\ncnt=0\nwhile1:\ndata=[\n(‘random’,int(time.time())),\n(“tourFlag”,”dc”),\n(‘_json_att’,”),\n(“REPEAT_SUBMIT_TOKEN”,self.globalRepeatSubmitToken),\n]\nurl_query_wait=url_query_wait+urllib.urlencode(data)\nprint(“sendqueryOrderWaitTime:%d=====>”%cnt)Step13:resultOrderForDcQueue%url\ng_conn.request(‘POST’,url_result,body=post_data,headers=self.proxy_ext_header)\nres=g_conn.getresponse()\ndata=res.read()\nres_json=json.loads(data)\nprint(“recvqueryOrderWaitTime”)\nifnotres_json[‘data’].has_key(‘submitStatus’)orres_json[‘data’][‘submitStatus’]!=True:\nprint(“submiterror”)\nprint(data)\nreturnFalse\nelse:\nprint(“”)\nreturnTrue\n@retries(3)\ndefget_passenger_info(self):\nprint(“”)\nurl_get_passager_info=”http://kyfw.12306.cn/otn/confirmPassenger/getPassengerDTOs”\ndata=[\n(‘_json_att’,”),\n(‘REPEAT_SUBMIT_TOKEN’,self.globalRepeatSubmitToken)\n]\npost_data=urllib.urlencode(data)\nprint(“sendgetPassengerDTOs=====>”)Step4\nifnotself.checkUser():\nreturnFalse\nStep6\nifnotself.confirmPassenger_get_token():\nreturnFalse\nself.proxy_ext_header[“Referer”]=”http://kyfw.12306.cn/otn/confirmPassenger/initDcStep7\nStep8\nifnotself.check_rand_code():\nreturnFalse\nStep10\nifnotself.getQueueCount(item):\nreturnFalse\nStep13\nifnotself.resultOrderForDcQueue():\nreturnFalse\nreturnTrue\ndefclean_temp_files():\nprint(“clean_temp_files”)\npass\ntesthttplib.HTTPException\ndeftest_ocr():\nf_name=”pass_code.jpeg”\ntext=call_tesseract(f_name)\nprint(“read:%s”%text)\n@retries(3)\ndeftest_reconnect():\nheader={\n”Accept”:”*/*”,\n”X-Requested-With”:”XMLHttpRequest”,\n”Accept-Language”:”zh-cn”,\n”Accept-Encoding”:”gzip,deflate”,\n”Connection”:”Keep-Alive”,\n”Cache-Control”:”no-cache”,\n”User-Agent”:”Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0)”,\n”Content-Type”:”application/x-www-form-urlencoded;charset=UTF-8″,\n}\nurl=”http://www.baidu.com”\nforiinrange(3):\nprint(“send”)\ng_conn.request(‘GET’,url,headers=header)\nres=g_conn.getresponse()\ndata=res.read()\nprint(“send”)\nrestart_conn(g_conn)\ndeftest_get_svr_ips():\nprint(“test_get_svr_ips”)\npass\ntestsetlog\nhdlr=logging.FileHandler(‘.\\log.txt’)\nformatter=logging.Formatter(‘%(asctime)s-%(levelname)s-%(message)s’)\nhdlr.setFormatter(formatter)\nlogger.addHandler(hdlr)\nlogger.setLevel(logging.WARNING)\ntest_ocr()\n#test_reconnect()\nmain()

参考项目完整源码:

真的放不了地址,请私信我,已经打包好了。

如有需要早下载,可能会失效!

以上是全部内容,只是善于分享,不足之处请包涵!爬虫基本的原理就是,获取源码,进而获取网页内容。一般来说,只要你给一个入口,通过分析,可以找到无限个其他相关的你需要的资源,进而进行爬取。

我也写了很多其他的非常简单的入门级的爬虫详细教程,关注后,点击我的头像,就可以查看到。

欢迎大家一起留言讨论和交流,谢谢!

关于本次商务网站源码分享免费下载网址和商务网站是什么的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

站内搜索