您的位置:首页 > 编程语言 > Python开发

使用python获取网页中指定数据

2015-03-30 20:30 489 查看
文章内容:

使用python读取网页内容
python使用cookie
python输出制表符
...
为了体验某款游戏的玩法,我最近在玩一款游戏。(各位看官权且相信~~(>_<)~~) 游戏账户的余额需要登陆网页查询,普通玩家有1,2个账户没什么,但是我有几十个账号~~(>_<)~~  查询一次会非常耗费时间,于是萌生了写一个脚本统一进行查询的想法。刚好最近又在学习python,就用python写练手了~  
目前python初学者,代码拙劣之处欢迎批评(*^__^*) 

查看登陆页面的源码,发现如下代码(无关部分我已经删掉了):

<!--登陆开始-->
<div style="display: none;" class="loginForm">
<form id="login" method="post" action="https://url0.com/logins.jsp?type=1&product=pointcard" >
用户名:<input type="text" name="username"/>
密 码:<input type="password" name="password" />
<input type="submit" value="登 录" />
<input name="url" value="http://url1.com/servlet/controller?operation=login&type=URS" type="hidden">
</form>
</div>
<!--登陆结束-->


找到了关键点,我们来构造url测试一下:

https://url0.com/logins.jsp?type=1&product=pointcard&
username=testuser&
password=testpass&
url=http://url1.com/servlet/controller?operation=login&type=URS


直接在浏览器中访问这个地址,成功跳出了显示余额的界面。准备工作做好,接下来python搞起。

import urllib2

url = #上面构造好的url
content = urllib2.urlopen(url).read()
print content


这里返回了一个中转页面,直接用上面的代码再跳转一次。好吧又返回了另一个中转页面,再用上面的代码跳转一次,这次返回了登陆页(⊙﹏⊙)b
为什么返回登陆页呢? 好吧,这里我忘记使用cookie了(;′⌒`)

python使用cookie的方式非常简单,只要在开头加上如下代码,之后每次 urlopen 都会带上cookie:

import urllib
import cookielib

from sgmllib import SGMLParser

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)


使用cookie之后再用上面的代码访问网页,跳转2次, 成功返回了查询余额的页面!
这里我直接用了切割字符串的方式找到需要的余额(代码太难看就不贴上来了(⊙﹏⊙)b, 等功力加深了再来这里修改) 

好到这里我们已经得到想要的结果了,把要查询的账号用list存下来,然后for循环里调用查询输出就可以啦。

最后~

为了输出的结果好看一点,我们加上制表符:

#┌───────────────┐
#│               │
#├───────────────┤
#│               │
#└───────────────┘


就是这个样子啦,但是直接输出的话会出来乱码,解决方法是在开头加上 # -*- coding: utf-8 -*-   这个是用来声明编码格式。然后输出的语句这样写:

# -*- coding: utf-8 -*-
print '\t├───────────────┤'.decode('utf-8')


这样就搞定了(*^__^*) 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python cookie