python实现查询苹果手机维修进度


Posted in Python onMarch 16, 2015

万恶的苹果,我的5s最近坏了,官方的零售店是根本就预约不到啊预约不到啊,所以只好去找授权维修点了,昨天送去之后人家说可能要返厂,周期大概20天左右,我直接就醉了,20天啊,快一个月啊,等手机到手都快清明了,fuck.今天下午无聊在网上搜了下看能不能查到维修进度,发现在苹果官网就可以查看,不过我的机子目测还没有送修,现在还查不到维修进度,趁着无聊没事干,写了个程序来即使的查看维修进度.

python的urllib2已经添加了对于cookie的支持,这对于抓取一些要登录的站点或者要设置cookie的站点很方便.

而且urllib2模块支持调试模式,可以看到你的程序向服务器发送的请求已经服务器返回的信息,这样就可以很方便的看清楚自己程序是否有问题.
好了,不说废话了,下面贴出代码

from bs4 import BeautifulSoup

import urllib2

import urllib

import cookielib

 

 

urllib2.urlopen('http://www.baidu.com').read()

 

baseurl='https://selfsolve.apple.com/repairstatus/GetRepairDetails.do'

 

headers = {

    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',

    'Host':'selfsolve.apple.com',

    'Origin':'https://selfsolve.apple.com',

    'Referer':'https://selfsolve.apple.com/repairstatus/main.do',

    'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4',

    'Cache-Control':'max-age=0',

    'Connection':'keep-alive',

    'Content-Length':45,

    'Content-Type':'application/x-www-form-urlencoded',

    'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36',

}

 

 

postData={

  'repair_id':'aaaaaa',#维修序号

  'serial_number':'bbbbb'#手机序列号

}

 

 

if __name__=='__main__':

   

  cj = cookielib.LWPCookieJar()

  cookie_support = urllib2.HTTPCookieProcessor(cj)

  opener = urllib2.build_opener(

    cookie_support,

    urllib2.HTTPHandler(debuglevel=1),

    urllib2.HTTPSHandler(debuglevel=1)

  )

   

  urllib2.install_opener(opener)

   

   

   

   

  StrpostData=urllib.urlencode(postData)

  req=urllib2.Request(baseurl,StrpostData,headers)

  rsp=urllib2.urlopen(req)

  text=rsp.read()

   

  file=open('repair.html','w')

  file.write(text)

  file.close()

   

  print text

  raw_input()

好了,程序就是这样子,上面说的添加cookie支持和开启调试模式就是下面这段代码

cj = cookielib.LWPCookieJar()

cookie_support = urllib2.HTTPCookieProcessor(cj)

opener = urllib2.build_opener(

  cookie_support,

  urllib2.HTTPHandler(debuglevel=1),

  urllib2.HTTPSHandler(debuglevel=1)

)

 

urllib2.install_opener(opener)

然后可以很方便的看到程序运行时候的输出,如下图

python实现查询苹果手机维修进度

接下来就可以通过得到的html来抓取需要的信息了.

Python 相关文章推荐
python抓取网页图片并放到指定文件夹
Apr 24 Python
python黑魔法之参数传递
Feb 12 Python
Python中Django 后台自定义表单控件
Mar 28 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
Python文件常见操作实例分析【读写、遍历】
Dec 10 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
python 正则表达式参数替换实例详解
Jan 17 Python
python实现查找所有程序的安装信息
Feb 18 Python
python:批量统计xml中各类目标的数量案例
Mar 10 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
Python Mock模块原理及使用方法详解
Jul 07 Python
python让图片按照exif信息里的创建时间进行排序的方法
Mar 16 #Python
python实现简单的计时器功能函数
Mar 14 #Python
python将图片文件转换成base64编码的方法
Mar 14 #Python
python在Windows8下获取本机ip地址的方法
Mar 14 #Python
python检测远程端口是否打开的方法
Mar 14 #Python
python检测远程udp端口是否打开的方法
Mar 14 #Python
python检测远程服务器tcp端口的方法
Mar 14 #Python
You might like
逐步提升php框架的性能
2008/01/10 PHP
ThinkPHP多语言支持与多模板支持概述
2014/08/22 PHP
php正则表达式学习笔记
2015/11/13 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
Iframe thickbox2.0使用的方法
2009/03/05 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
Angular实现form自动布局
2016/01/28 Javascript
js创建数组的简单方法
2016/07/27 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
全面了解Python环境配置及项目建立
2016/06/30 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
Python找出微信上删除你好友的人脚本写法
2018/11/01 Python
django使用LDAP验证的方法示例
2018/12/10 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
PHP遍历数组的6种方式总结
2021/11/17 PHP
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
redis lua限流算法实现示例
2022/07/15 Redis