资源简介
本资源既有我的代码,也有我的学习视频。基础差可以根据教程手把手教你实现12306登录用户、余票查询、下单等功能。本代码基于Python2.7 实现12306抢票,我的代码与视频有些不同,希望有助于你的学习。有问题请私信,共同学习,共同进步!
代码片段和文件信息
# -*- coding:utf-8 -*-
# Author: zjtMeng
import urlliburllib2
import ssl
import cookielib #python中内置可以操控cookie的模块
import time
from user import UserIdUserPwddic_code
from json import loads
from station import stationDicstationList
import chardet
# python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError
import re
import sys
reload(sys)
sys.setdefaultencoding(‘utf8‘)
# 声明一个cookieJar对象来保存cookie
cookie = cookielib.CookieJar()
# 创建cookie处理器
hander = urllib2.HTTPCookieProcessor(cookie)
# 用该处理器初始化一个新的opener
opener = urllib2.build_opener(hander)
urllib2.install_opener(opener)
# 跳过验证证书步骤
ssl._create_default_https_context = ssl._create_unverified_context
headers = {
‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/55.0.2883.87 Safari/537.36‘
‘Referer‘: ‘https: // kyfw.12306.cn / otn / login / init‘
}
# # 创建请求
# res = opener.open(‘http://www.12306.cn‘)
# for item in cookie:
# print ‘name:‘ + item.name + ‘-value:‘ + item.value
# print res
def login():
# 请求并获取验证码图片地址
req = urllib2.Request(
‘https://kyfw.12306.cn/passport/captcha/captcha-image?login_site=E&module=login&rand=sjrand&0.9644364014773337‘
)
# 添加头信息
req.headers = headers
imgCode = opener.open(req).read()
with open(‘code.png‘‘wb‘) as fn:
fn.write(imgCode)
# ------------------- 验证码登录 -------------------------
# 验证验证码
# code = raw_input(“请输入验证码:“) #写入二维码坐标
code = raw_input(“请输入正确验证码对应位置的字母\n( a b c d\n e f g h ):“) #写入二维码坐标
user_input = ‘‘
for i in code:
user_input += dic_code[i] + ‘‘
user_input = user_input[0:-1]
data ={
‘answer‘: user_input #坐标二维码的结果
‘login_site‘:‘E‘
‘rand‘:‘sjrand‘
}
req = urllib2.Request(
‘https://kyfw.12306.cn/passport/captcha/captcha-check‘
)
req.headers = headers
data = urllib.urlencode(data)
html = opener.open(req data).read()
# print ‘10001: ‘ + html
# ------------------- 账号登录 -------------------------
req = urllib2.Request(
‘https://kyfw.12306.cn/passport/web/login‘
)
req.headers = headers
data = {
‘username‘: UserId
‘password‘: UserPwd
‘appid‘:‘otn‘
}
data = urllib.urlencode(data)
html = opener.open(reqdata).read()
# print ‘10002: ‘ + html
req = urllib2.Request(‘https://kyfw.12306.cn/otn/login/userLogin‘)
req.headers = headers
data = {
‘_json_att‘:‘‘
}
data = urllib.urlencode(data)
html = opener.open(reqdata)
# print ‘10003: ‘ + html.geturl()
req = urllib2.Request(‘https://kyfw.12306.cn/otn/passport?redirect=/otn/login/userLogin‘)
req.headers = headers
html = opener.open(reqdata)
# print ‘10004: ‘ + html.geturl()
req = urllib2.Request(‘https://kyfw.12306.cn/passport/web/a
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16996 2019-02-24 16:41 12306抢票\12306爬虫软件\12306.py
文件 122 2018-07-28 22:22 12306抢票\12306爬虫软件\ReadMe.txt
文件 186 2019-02-24 16:56 12306抢票\12306爬虫软件\教程.txt
目录 0 2019-02-24 16:56 12306抢票\12306爬虫软件
目录 0 2019-02-24 16:56 12306抢票
----------- --------- ---------- ----- ----
17304 5
相关资源
- Python学习路线Python课程大纲Python视频
- 小甲鱼Python零基础免费全套视频教学
- python全套视频教程
- 2018传智python 15期 视频教程 今年刚
- 小甲鱼零基础入门学习Python视频教程
- python视频教程 老男孩全栈工程师教程
- 2018年15期Python视频教程传智播客itca
- 2019传智播客python零基础入门视频教程
- python全套视频教学
- 深度学习视频教程,包括python入门,
- python网络爬虫视频教学国家精品课程
- 零基础入门学习Python+全套源码课件
- python视频教程
- 某宝买的2018Python全栈教程马哥
- 2017年老男孩最新全栈python第2、3期视
- Python爬虫教程+游戏+框架全套源码课件
- 零基础学习python视频100集全百度云.
- 2017年6月最新老男孩python全栈三期视频
- 2017传智播客黑马python就业班最新视频
- 老男孩Python完美实战课程 14期视频教
- python机器学习课件+源码+视频教程
- 21天学通Python配套的光盘,带视频教学
评论
共有 条评论