python 网络编程——urllib,urllib2简单运用

news/2025/4/2 15:31:41/

知识点一:字典

字典呢就是一种数据结构,我们也可以将它称作映射,可以储存任意类型对象。它是由一个键/值对组成,举个通俗一点的例子,以我们的电话簿为例,值==电话,键==姓名。

需要注意的是在字典中,所有的键都最多只能出现一次,此外,与集合不同,所有键必须是不可变的(而与之对应的值则没有这种限制)。

将键/值对放到一对花括号中即可创建出字典,例如:

>>>bird={ 'number':3, 'color': white}

>>>bird['number']

>>>3

此外,空字典为{},在字典中索引一个并不存在的键将会引发一个error,如同列表的越界索引一样。


知识点二:web应用(客户端/服务器)

web应用遵循客户端/服务器架构。我们这儿说的web客户端是指一个浏览器,它允许用户在万维网上查询文档。另一边的web服务器端则是运行在信息提供商的主机上的进程,这些服务器等待客户端以及其文档请求,进行相应的处理。

客户端可以向web服务器端发出各种不同的请求,这些请求可能包括提交一个数据表单或者获取一份网页视图(举这两个例子的原因是待会我们做的练手项目将会用到它们)。web服务器端首先处理请求,然后会以特定的格式(HTML)返回给客户端浏览。

web客户端和服务器端交互所用到的语言为:HTTP(超文本传输),他是TCP/IP的上层协议。需要注意的是HTTP属于无状态协议,因为其不跟踪一个客户端到另一个客户端的请求信息,也就是说服务器不记得一个请求和下一个请求之间的任何事情,如果应用程序想要跟踪一些信息,就必须自己跟踪,最常见的方法是使用cookie,我们在这就不多讲了。另外,关于HTTP需要多讲的是:一个URL我们用参数来补充,以提供更多的信息,例如使用搜索引擎是,细心的朋友会发现,在跳转界面的URL上会看见一种类似key=value的格式,例如:http://www.google.ca?1=php,就是在谷歌相关界面查询PHP的资料。

除此之外,在解释一下进程与线程:

1、首先,计算机程序只是储存在磁盘上的可执行二进制文件,只有把它加载到内存中并被操作系统调用才拥有其生命周期。进程则是一个执行中的程序。每个进程都拥有自己的地址空间,内存,数据栈以及其他用于跟踪执行的辅助数据。

2、线程与进程类似,不过它们是在同一个进程下执行的,共享上下文,一个线程包括开始、执行顺序和结束三部分,当其他线程运行时,它可以被抢占(中断)和临时挂起。


知识点三:urllib,urllib2模块/包

urllib模块提供了许多函数,可用于从指定URL下载数据,同时也可以对字符串进行编码、解码。

1、urllib.urlopen()

urlopen()打开一个给定URL字符串的web链接,并返回文件类型对象,例如:

>>>import urllib

>>>urllib.urlopen('www.baidu.com')

分享一小段代码,用来查询LOL战绩:

def get_zhanji():
name = str(et.get())
res = urllib2.urlopen('http://api.lolbox.duowan.com/api/v2/player/search/?player_name_list=%s&callback=jQuery111202094132792311676_1470488541527&_=1470488541528'%(name))
html = res.read()[42:-1]
zhanji = json.loads(html)[u'player_list']
#print zhanji
t.delete(0.0,END) 
for i in zhanji:
#print '服务器:%s   当前战力:%s'%(i['game_zone']['alias'],i['box_score'])
#print '当前段位:%s'%(i['tier_rank']['tier']['full_name_cn']+i['tier_rank']['rank']['name'])
t.insert(END,'服务器:%s   当前战力:%s'%(i['game_zone']['alias'],i['box_score']))
t.insert(END,'当前段位:%s\n'%(i['tier_rank']['tier']['full_name_cn']+i['tier_rank']['rank']['name']))


****************************************************************************************************************************************************************************************

知识点到此结束,下一篇博客会接着将Python网络编程,除了本篇博客上所涉及到的知识外,还会有部分的正则表达式的运用,除此之外,还会给大家分享一个小程序,主要运用到的模块是:

Tkinter
tkMessageBox
re
urllib,urllib2



http://www.ppmy.cn/news/629247.html

相关文章

box-shadow

box-shadow前言 box-shadow是css3的一个新属性,用来实现阴影效果,阴影分为内阴影和外阴影两个效果,可以通过逗号添加多个阴影效果。 box-shadow阴影用法 box-shadow:inset offset-x offset-y blur-radius spread-radius color,....; box-sh…

《安卓》一个按钮实现全选和全不选

目的描述: 在一个activity上显示三个不同名字的按钮,并设置一个名字为全选的按钮,当对它点击可以选择其余所有按钮,再次点击则取消所选的按钮。 截图展示: 单个选择 点击全选后全部选择 思路整理记录: 1.在…

NSBox

分组和滚动视图。 NSBox、NSScrollView、和NSSplitView类用于为窗口中的视图集合或其它视图对象提供图形“附件”。您可以通过NSBox类将窗口中的元素分组,并为整组元素描画一个边界。NSSplitView类可以在垂直或水平方向附加一些视图,并为每个视图分配一定…

Gamepanel

package 巴什博奕; import javax.swing.*; import javax.swing.Timer; import java.awt.; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.; public class…

Gamebryo引擎

Gamebryo引擎是NetImmerse引擎的后继版本,是由Numerical Design Limited最初开发的游戏中间层,在与Emergent Game Technologies公司合并后,引擎改名为Gamebryo Element。 简介 Gamebryo Element引擎是由C编写的多平台游戏引擎,他支…

使用Spark计算PV、UV

日志字段格式: id,ip,url,ref,cookie,time_stamp 把日志文件放到HDFS。仅取了1000行。 hadoop fs -put 1000_log hdfs://localhost:9000/user/root/input直接在Scala Shell中读取文件并计算PV。 scala> val textFile sc.textFile("hdfs://localhost:900…

Android使用OkHttp实现登录注册功能

客户端 在客户端,这里将登录和注册放在了同一个界面,在账号和密码两个EditText中输入内容后,按下LOGIN按钮,进行登录;按下REGISTER按钮,进行注册。 在写代码之前,先添加OkHttp的依赖: implementation com.squareup.okhttp3:okhttp:3.4.1//这里3.4.1是笔者使用的okhttp版…

一步步实现 仿制Android LOL多玩盒子(一) 概览

一、起源 最近比较闲,玩LOL的时候感觉 Android LOL多玩盒子 里面应用到的东西挺多也挺有意思,打算仿照着做一个。抱着练练手的心态,打算只使用原APK中的图片,代码和布局均自己实现。由于该应用涉及的内容较多、个人能力和空闲时间…