python实现清华大学联网助手(一)——urllib/hashlib/getopt/time/codecs的使用

hashlib-20081119.zip hashlib源码,在python中使用from hashlib import md5的时候,经常遇到"cannot import name md5",这是因为缺少_md5.so文件,所以下载hashlib源码,解压后进入其目录,然后执行python setup.py build编译,执行python setup.py install 安装即可生成_md5.so、_sha256.so等相关文件 清华源下载地址:https://pypi.tuna.tsinghua.edu.cn/packages/74/bb/9003d081345e9f0451884146e9ea2cff6e4cc4deac9f 立即下载

python版清华大学联网助手

github:https://github.com/HaoyuHu/python

学习完python之后,能够明白它的语法和特性,感觉这是一种与C/C++和java截然不同的语言,它更高级,更接近自然语言。所以能通过极少的代码完成其他语言需要几百行代码才能完成的任务。前些阵子曾经用python从各大网站上抓取信息用作分析数据,觉得挺过瘾。因此为了满足在linux下快速连接校园网和查询流量的需求,决定用python实现一个联网助手,能通过命令行进行操作。需要注意的是,本python版pytunet是基于python3.4,相应的语法和模块也遵循python3的要求。由于python3的相关内容在网上还不是很多,在编程过程中受到很多python2的文章的误导,走了很多弯路。不过也加深了我对python3的理解。同时也对python严格的缩进要求表示*&…%¥(just kiding)。后面在python2和python3不同的地方我也会特别指出。


最终目标希望完成如下几个功能:
(1)登录校园网
(2)登出校园网
(3)查询当前网络状态
(4)查询流量、帐户余额、当前用户组等基本信息
(5)查询本账号当前在线IP信息
(6)查询每日流量使用明细,并生成直方图

使用方法:
使用前请到同级目录下USERNAME_PASSWORD.txt文件中修改你的校园网账号和密码。
可将tunet.py设置为外部命令,参数如下:
-h, --help : 显示帮助
-v, --version: 显示当前清华大学联网助手版本号
-u : 输入用户名
-p : 输入密码
-a : 稍后输入用户名和密码,可以登录其他校园网帐户
-i, --login : 联网操作(当不带任何其他操作时,默认进行联网操作)
-o, --logout : 断网操作
-c, --check : 检查当前网络状态
-q, --query : 查询流量、帐户余额、当前用户组等基本信息,查询本账号当前在线IP信息,查询每日流量使用明细,并生成直方图,查询结果保存在USER_DETAIL_INFOMATION.LOG文件下

说明:
(1)USER_DETAIL_INFOMATION.LOG文件保存最近一次综合查询结果
(2)USERNAME_PASSWORD.txt文件保存用户的账号和密码

版本v1.2更新内容:
(1)增加了账户和密码的文件管理
(2)性能调整
(3)当不带任何参数时,默认连接校园网,简化输入

版本v1.1更新内容:
(1)增加了综合查询功能:查询流量、帐户余额、当前用户组等基本信息,查询本账号当前在线IP信息,查询每日流量使用明细,并生成直方图,查询结果保存在USER_DETAIL_INFOMATION.LOG文件中

版本v1.0更新内容:
(1)提供基本的联网、断网和检查当前网络状态的操作


python实现分析总共分为3个部分:本篇为第一篇。

本篇将分析如下几个问题:

1 如何利用hashlib处理密码;

2 如何实现带账号密码登录的网页request和urlopen;

3 如何实现带参数输入的自定义命令;

4 如何实现当前日期和时间的获取;

5 if __name__ == '__main__'的作用。


1 如何利用hashlib处理密码:

--载入模块hashlib:import hashlib;

--md5的使用:

a) md5是计算机安全领域广泛使用的一种哈希函数。

b) 首先创建md5对象,然后用update(password)实现密码到加密散列值的过程。注意此处password必须经过统一编码,也就是说password需要经过encode才可以传入update()中,否则报错(python2中似乎没有这个要求)。

c) 生成的散列值可以有2种表现形式,digest()和hexdigest(),前者为二进制形式,后者为十六进制形式。

hashcd_md5 = hashlib.md5()
hashcd_md5.update(password.encode())
tr_password = hashcd_md5.hexdigest()
如上就将字符串类型的password转换为十六进制形式的tr_password散列值。encode()默认使用utf-8编码方式,需要载入模块codecs。


2 如何实现带账号密码登录的网页request和urlopen:
密码加密过程上面已经完成,接下来分析如何请求网页和打开网页。由于涉及账号登录,一般有2种发送账号密码的方式:第一种自己构造post数据,通过发送正文request body实现模拟登录;第二种是将账号和密码加入登录的url中实现模拟登录。

a) 网页打开和登录的内部逻辑:

但无论是哪种方式,都需要明白网页登录的逻辑。那我们如何去了解网页登录的内部逻辑呢?我推荐这篇文章:[教程]手把手教你如何利用工具去分析模拟登录网站。我正是一步一步跟着教程做才明白了网页打开、帐户登录等行为的机制。我用的是ie11的F12工具,虽然界面上与教程不同,但功能上大同小异,稍微摸索应该就能学会如何使用。

明白了网页的逻辑后,我们需要仔细看一下登录页面的源代码。了解一下本页面内的逻辑和可能的响应。

b) url的request和urlopen:

通过上面对网页逻辑的分析,我发现本校的联网登录是通过第一种方式实现的,因此我们需要构造自己的post数据。

我们在第1步中得到了我们密码的md5散列值tr_password。同时在发送正文中数据是以这种格式组织的‘username=' + username + '&password=' + tr_password + '&drop=0&type=1&n=100’。因此我们就模拟组织这样的post_data。

当然有的网站为了防止恶意登录,会同时要求发送标头。为以防万一,我建议你也要模拟发送标头。但幸运的是,我们的校园网并没有这么严格,因此我偷懒并没有加上header。

注意:

python2和python3的urllib模块是有区别的。python3中并没有urllib2,且载入模块时应import urllib.request。所有我们所需要的函数均在urllib.request中。调用函数的方式也不同,请求是urllib.request.Request(url, post_data),打开是urllib.request.urlopen(response)。如果你有闲心可以比较一下python2和python3在此处调用上的区别,如果不感兴趣可以直接按照的函数去写。

同样的,为了标准化输入,我们的post_data也必须经过utf-8编码。

login_data = 'username=' + username + '&password=' + tr_password + '&drop=' + '0' + '&type=1&n=100'
login_data = login_data.encode()
request_url = urllib.request.Request(login_url, login_data)
response_url = urllib.request.urlopen(request_url)
content = response_url.read().decode()
基本步骤:

构造post_data并encode统一化,携带post_data向url发送请求,再通过urlopen得到页面响应response。接着通过response.read()读取页面内容,这里的页面内容需要通过decode()转义为字符串类型,才能让我们对页面反馈做进一步的处理。
对于logout操作和check操作也是大同小异,只是post_data不同。logout不需要post_data,传入‘’即可。而check的post_data是‘action=check_online’。


3 如何实现带参数输入的自定义命令:

话锋一转,我们现在已经能够完成网页的请求、打开,并且可以根据你自身的要求去处理响应正文,以及登录后发生跳转后的网页内容,抓取数据和分析数据。

但别忘了,我们是要制作一款基于linux命令行操作的联网助手。因此我们必须要应付各种复杂的操作,并让它看起来确实像是一个正式的命令,接收很多必要的参数。联网助手,顾名思义我们需要联网功能、断网功能和查询当前联网状态功能。此外命令还需要带有--version和--help才显得完整。同时在联网时我们需要输入账号和密码,这里也需要一些参数。

总结起来:

-h, --help : 显示帮助
-v, --version: 显示当前清华大学联网助手版本号
-u : 输入用户名
-p : 输入密码
-a : 稍后输入用户名和密码,可以登录其他校园网帐户
-i, --login : 联网操作(当不带任何其他操作时,默认进行联网操作)
-o, --logout : 断网操作
-c, --check : 检查当前网络状态


那么我们该如何实现参数的传入呢?这就需要getopt这个强大的模块。

getopt的使用方法:

举一个简单的例子, options, args = getopt.getopt(sys.argv[1:], 'achiop:u:v', ['help', 'login', 'logout', 'check=', 'version'])

解释一下,输入的命令行会被getopt函数拆解成几个部分。其中我们需要的是options部分。

先看 'achiop:u:v',这一块乱起八糟的东西,每一个字母都代表一个参数的符号:-a -c -h -i -o -p -u -v,其中p:和u:是带有冒号的,这表示需要在-p后面传值。最后可能会这样在命令行中实现:tunet -i -u hhy14 -p 123456。其中i不需要传值,而-u和-p分别传入用户名和密码。

而后面的['help', 'login', 'logout', 'check=', 'version']表示参数全称, 对应--help --login等。如果有=号,则说明这个参数需要传递一个值。

而我们解析得到options则是一系列键值对:就那上面的例子来说,options中就包含('-i': None)('-u': 'hhy14')('-p': '123456')这三个键值对。

因此我们可以用一个循环去处理每一个参数和它的值。

注意:参数的传递可能会有问题,因此需要异常处理。

实现如下:

try:
<span style="white-space:pre">		</span>options, args = getopt.getopt(sys.argv[1:], 'achiop:u:v', ['help', 'login', 'logout', 'check', 'version'])
	except getopt.GetoptError:
		tunet_others()
		sys.exit(1)

	want_login = False
	flag = False

	name, value = None, None

	for name, value in options:
		if name in ('-h', '--help'):
			tunet_help()
			sys.exit(0)
		elif name in ('-v', '--version'):
			tunet_version()
			sys.exit(0)
		elif name == '-a':
			flag = True
		elif name == '-u':
			username = value
		elif name == '-p':
			password = value
		elif name in ('-i', '--login'):
			want_login = True
		elif name in ('-o', '--logout'):
			tunet_logout()
			sys.exit(0)
		elif name in ('-c', '--check'):
			tunet_check()
			sys.exit(0)
当然,我的这个实现是有特殊用处的,你应该根据你的需求去处理。

4 如何实现当前日期和时间的获取:

time模块可以让我们获得当前的时间,最为实用的应该是strftime(),它接受至少一个参数,并返回当前日期和时间的字符串。它至少需要1个参数来表明它输出的格式。比如time.strftime(‘%Y-%m-%d %H:%M:%S’)就能返回'2015-04-04 12:22:34'格式的字符串。详细可以看time.strftime()简介。


5 if __name__ == '__main__'的作用:

这个莫名其妙的东西是使得.py文件可重用的关键语句。

比如:

if __name__ == '__main__':
tunet_connector()

那么如果单独运行该.py脚本,则会调用tunet_connector()函数。

如果作为模块被载入其他脚本中,该文件则不会自动运行,而任由其它脚本去使用它的函数。


BONUS:

说了那么多,这里再说一个如何在输入密码时不显示密码。这需要getpass模块。

password = getpass.getpass('PASSWORD = ')能够在键入密码时不显示密码。输入参数为提示内容。

需要注意,getpass.getuser()这个函数是获取你当前主机用户的用户名,因此不能用在这里。输入用户名还是直接用input吧(python3里已经没有raw_input了)。


第一篇要说的就这么多,下面是完整的实现代码:

import sys, getopt, time
import urllib.request, getpass, hashlib
import codecs

login_url  = 'http://net.tsinghua.edu.cn/cgi-bin/do_login'
logout_url = 'http://net.tsinghua.edu.cn/cgi-bin/do_logout'
check_url  = 'http://net.tsinghua.edu.cn/cgi-bin/do_login'
query_url  = 'https://usereg.tsinghua.edu.cn/login.php'

times_cnt = {1: 'FIRST', 2: 'SECOND', 3: 'THIRD', 4: 'FORTH', 5: 'FIFTH'}
ret_type  = {'logout_ok'       : 'LOGOUT SUCCESS',
			'not_online_error' : 'NOT ONLINE',
			'ip_exist_error'   : 'IP ALREADY EXISTS',
			'user_tab_error'   : 'THE CERTIFICATION PROGRAM WAS NOT STARTED',
			'username_error'   : 'WRONG USERNAME',
			'user_group_error' : 'ACCOUNT INFOMATION INCORRECT',
			'password_error'   : 'WRONG PASSWORD',
			'status_error'     : 'ACCOUNT OVERDUE, PLEASE RECHARGE',
			'available_error'  : 'ACCOUNT HAS BEEN SUSPENDED',
			'delete_error'     : 'ACCOUNT HAS BEEN DELETED',
			'usernum_error'    : 'USERS NUMBER LIMITED',
			'online_num_error' : 'USERS NUMBER LIMITED',
			'mode_error'       : 'DISABLE WEB REGISTRY',
			'time_policy_error': 'CURRENT TIME IS NOT ALLOWED TO CONNECT',
			'flux_error'       : 'FLUX OVER',
			'ip_error'         : 'IP NOT VALID',
			'mac_error'        : 'MAC NOT VALID',
			'sync_error'       : 'YOUR INFOMATION HAS BEEN MODIFIED, PLEASE TRY AGAIN AFTER 2 MINUTES',
			'ip_alloc'         : 'THE IP HAS BEEN ASSIGNED TO OTHER USER'
			}

version  = '1.0'

def trans_content(response):
	content = response.read().decode()
	ret = ''
	for ch in content:
		if ch.isalpha() or ch == '_':
			ret += ch
	return ret

def tunet_login(username, password):
	hashcd_md5 = hashlib.md5()
	hashcd_md5.update(password.encode())
	tr_password = hashcd_md5.hexdigest()
	login_data = 'username=' + username + '&password=' + tr_password + '&drop=' + '0' + '&type=1&n=100'
	login_data = login_data.encode()
	request_url = urllib.request.Request(login_url, login_data)
	response_url = urllib.request.urlopen(request_url)
	ret = trans_content(response_url)
	print (ret_type.get(ret, 'CONNECTED'))
	return ret

def tunet_logout():
	response_url = urllib.request.urlopen(logout_url)
	ret = trans_content(response_url)
	print (ret_type.get(ret, 'CONNECTED'))
	return ret

def tunet_check():
	check_data = 'action=check_online'
	check_data = check_data.encode()
	request_url = urllib.request.Request(check_url, check_data)
	response_url = urllib.request.urlopen(request_url)
	ret = trans_content(response_url)
	if ret == '':
		print ('NOT ONLINE')
	else:
		print (ret_type.get(ret, 'CONNECTED'))
	return ret

def tunet_help():
	print ('-h, --help   : show all options of Tsinghua University Internet Connector')
	print ('-v, --version: show version of Tsinghua University Internet Connector')
	print ('-u           : input your username after \'-u\'')
	print ('-p           : input your password after \'-p\'')
	print ('-a           : enter username and password later, you can login other campus network account')
	print ('-i, --login  : login operation')
	print ('-o, --logout : logout operation')
	print ('-c, --check  : check the internet')

def tunet_version():
	print ('Tsinghua University Internet Connector ', version)

def tunet_others():
	print ('Unknown option')
	print ('Which option do you want?')
	tunet_help()
	print ('if any unknown error. please contact im@huhaoyu.com.')

def tunet_connector():
	username = 'hhy14'
	password = '123456'
	try:
		options, args = getopt.getopt(sys.argv[1:], 'achiop:u:v', ['help', 'login', 'logout', 'check', 'version'])
	except getopt.GetoptError:
		tunet_others()
		sys.exit(1)

	want_login = False
	flag = False

	name, value = None, None

	for name, value in options:
		if name in ('-h', '--help'):
			tunet_help()
			sys.exit(0)
		elif name in ('-v', '--version'):
			tunet_version()
			sys.exit(0)
		elif name == '-a':
			flag = True
		elif name == '-u':
			username = value
		elif name == '-p':
			password = value
		elif name in ('-i', '--login'):
			want_login = True
		elif name in ('-o', '--logout'):
			tunet_logout()
			sys.exit(0)
		elif name in ('-c', '--check'):
			tunet_check()
			sys.exit(0)

	if not want_login:
		tunet_others()
		sys.exit(1)

	if flag:
		username = input('username: ')
		password = getpass.getpass('password: ')

	ret = 'ip_exist_error'
	for count in range(5):
		print ('%s attempts to connect...' % times_cnt.get(count + 1))
		if ret != tunet_login(username, password):
			break
		if count == 4:
			print ('please try to reconnect after 1 minute')
			break
		print ('try to reconnect after 10 seconds')
		time.sleep(10)
		print ("")

if __name__ == '__main__':
	tunet_connector()
如代码或叙述有误,请批评指正,谢谢!欢迎讨论:)


YOLOv8融合可变形注意力(DAT)实战教程:暴力涨点的科研级注意力机制优化方案 DAT的“可变形注意力”为目标检测的“精准特征捕捉”提供了全新思路,而YOLOv8的工程化优势让这种科研创新能快速落地到工业场景。希望这篇教程能帮你在“注意力机制优化+复杂场景检测”的痛点上找到突破口。如果你在实操中遇到“涨点不明显”的问题,不妨回到“DAT的采样点是否贴合目标形状”“注意力权重是否有效过滤背景”这些细节上找原因——科研的价值,就在于在细节打磨中推动技术进步。祝你在DAT与YOLOv8的结合探索中,既能做出有说服力的实验成果,又能沉淀出解决异形目标检测难题的实用经验。 阅读详情

相关推荐

PMF5.0计算

EPA PMF5.0 计算步骤

nuistsy的博客 4532

bat 自动输入密码_清华校园网自动连接方案:Python+Selenium

文章目录- 安装Python- 安装Firefox及geckodriver- 使用Selenium连接清华网- Windows定时运行VB脚本本人在去年2月曾分享过清华校园网自动连网方案(https://mp.weixin.qq.com/s/XfDF8r7gPs0OH6n3hUftTg)。但是自从校园网改版成auth4登录后,我们不得不面临一个尴尬的事实,那就是原来的Python+req...

weixin_39524147的博客 1417

SpyGlass CDC实战:如何用sgdc约束文件解决跨时钟域报错(附常见错误排查)

本文详细介绍了如何使用SpyGlass CDC工具编写sgdc约束文件解决跨时钟域(CDC)报错问题。从基础语法到实战案例,涵盖时钟声明、复位约束、路径豁免等关键技巧,特别针对SPI断续时钟等特殊场景提供解决方案,并附常见错误排查指南,帮助工程师高效完成CDC验证。

weixin_28744423的博客 625

《python爬虫入门教程04--重剑无峰168》

1.url的基本组成,2.如何利用urllib库来爬取数据3.urllib.quote的讲解# string : 需要进行URL编码的字符串。# safe : 指定哪些字符不需要编码。默认值为 '/' ,意味着斜杠 / 不会被编码。你可以通过传入一个字符串来指定哪些额外的字符应该被视为安全的,即不需要被编码。# encoding : 指定字符串的编码方式。默认使用系统默认的编码方式(通常是UTF - 8 )。# errors : 指定如何处理编码错误。

xaing1314的博客 848

从宁德新能源面试官视角,拆解Halcon/OpenCV图像处理工程师的硬核技能树(附避坑指南)

本文从宁德新能源面试官视角出发,详细拆解Halcon/OpenCV图像处理工程师的核心技能树,涵盖硬件选型、算法实现和系统工程思维三大能力维度。文章提供工业视觉工程师面试的实战避坑指南,包括硬件配置要点、算法优化技巧及职业发展路径,助力求职者系统提升图像处理专业技能。

weixin_28732953的博客 128

【26美赛C题】2026美赛数学建模(MCM/ICM)思路解析及代码分享

本文为2026年美国大学生数学建模竞赛(MCM/ICM)C题的解题思路与资源分享。文章提出系统学习数学建模的重要性,强调竞赛考察的是综合建模能力而非单纯计算。针对C题常见的复杂系统评估类问题,作者提供了一套完整的建模框架,包括问题拆解、指标体系构建、数据建模、决策模型等六个阶段。订阅者可获得Python/Matlab双版本代码、论文结构解析、AI辅助建模方法等资源。内容适合准备参加各类数学建模竞赛的学生,特别是希望通过AI技术提升建模效率的参赛者。

一键难忘的博客 1683

python脚本系列——批量下载清华开源依赖包

1.流水线编译过程,执行apk --update add --no-cache xxx 2.报错ERROR: xxx package mentioned in index not found (try 'apk update') 3.内网环境缺依赖包,需要从清华源下载对应的包,但是需要根据报错一个个找,一个个点击下载麻烦 4.一开始打算下载官网全部依赖,但是数量太大,而且频繁拉取容易反爬,改为根据报错信息存放到E:\download\check.txt,程序自动识别包名下载到对应目录

一别两宽丶各生欢喜 1934

推荐系统[九]项目技术细节讲解z2:搜索Query理解[Term Weight、Query 改写、同义词扩写]和语义召回技术

在 pooling 方法上,我们也尝试过不同层 pooling,或者在多层上增加 attention 聚合 BERT 多层结果,效果和最后一层所有 token 做 average pooling 相当。损失函数方面,在排序阶段使用pairwise比 pointwise 损失函数的效果会更好。

丨汀、的博客 1109

python常用pip安装源网址

中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/阿里云:https://mirrors.aliyun.com/pypi/simple/豆瓣:http://pypi.douban.com/simple/假设我们需要安装名为numpy的Python包。使用清华大学镜像源,重新安装numpy。平时pip安装偶尔会下载速度过慢。使用默认源安装numpy。

HelloEarth_的博客 5158

实测可复现|2026 Cloudflare盾v4.0反反爬全实战:从JS/WASM逆向到JA3指纹伪装,手把手突破拦截(附完整逆向代码+避坑手册)

本文以2026年Cloudflare盾v4.0(集成Shield Synapse v2.0)为核心,全程以实战复盘为视角,拆解了从JS/WASM混合逆向、全维度指纹伪装(JA3+浏览器指纹)、人类行为模拟,到代理池搭建的全流程,整合了完整可复现的代码,所有步骤和踩坑点均为实测所得,无任何AI套话,新手也能跟着复现,最终实现爬取成功率从12%提升至95%+。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1686

SAP FICO 中的 F-02 :概念、使用场景及案例解析

在 SAP FICO (财务会计与管理会计) 模块中,F-02 是一个用于录入总账凭证的事务代码。这个事务代码主要用于手动输入总账凭证,适用于各类财务交易,例如资产购入、费用支付、收入确认等。F-02 的重要性在于,它允许财务人员在 SAP 系统中创建凭证,并确保这些凭证能够正确影响总账账户。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2060

python

1、python官网: https://www.python.org/doc/ range(): random.randint() sys.exit(): None: print()返回值为None:None表示没有值 对于所有没有return语句的函数定义,Python都会在末尾加上return None。 2、print()设置end关键字: 如果运行以下程序: print.....................

jiao_mrswang的博客 1822

YOLOv8 智能交通流量监测完整解决方案

YOLOv8智能交通流量监测系统基于先进的目标检测技术,提供实时车辆识别与统计分析功能。该系统通过虚拟检测线实现多方向车流量统计,支持多种车辆类型分类,并具备数据可视化、异常事件预警等核心功能。完整解决方案包含模型训练、实时检测、批量处理、结果分析等模块,并提供Flask API和Docker两种部署方案。系统采用YOLOv8算法实现高效检测,支持GPU加速,可通过量化、剪枝等技术进一步优化性能,为智能交通管理提供可靠的数据支持和技术保障。

u010117029的博客 117

清华镜像源地址(国内下载python包必备地址)

清华镜像源地址

weixin_42367693的博客 13万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python设置镜像源默认为清华的方法

Python设置镜像源默认为清华的方法

weixin_43776835的博客 1045

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Python国内镜像地址及配置使用方式

python镜像使用

super_mochi1 3万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

python镜像网址

python镜像地址

bh4xjx的博客 2544

使用python中的hashlib和urllib亲身遇到的坑

背景: 1,调用第三方接口时有要求:参数1,参数2,参数3 2,参数1 接收手机号,参数2自己任意指定,参数3是token值,此值是使用参数1的值和(参数2的值经过url编码后的结果)组合成的值作为参数经过md5加密生成的结果(token=md5(参数1+参数2.urlencode())) 我所说的坑在哪呢? 就是在对参数2进行url编码时遇到的,首先python中对值进行url编码...

mr~li的博客 560

Python清华镜像源

pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple

填码星空 8671

Python用清华的镜像网站安装第三方库

再给Python安装第三方库时,使用清华的镜像网站会很快,具体操作如下: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 加上安装库的名称

qq_44729810的博客 1940

error_no_online presence:initiali

这两天用tsung 测试ejabberd。我发送的是online chat。在最后统计结果时出现了大量的error_no_online错误 成千上万的出现,受不了。我以为是我改ts_jabberd_common引起的,测试了好久最后把Online(online)表打印出来,发现是空的。DEBUG插入的方法。发现没有执行。最后发现ts_user_server:add_to_online是在type为...

langxianwu的专栏 186

NotServingRegionException: Region is not online 错误总结

问题导读: 1.遇到Region is not online可能的原因是什么? 2.使用hbase你经常遇到的问题是什么? 遇到了下面错误: 14/05/16 03:59:30 INFO master.MasterFileSystem: Log folder hdfs://master:8020/hbase/WALs/slave1,60020,1400183951986 bel

沉底的石头 1万+

Python 使用清华大学镜像源

官方地址 首先,如果只是临时下载一个包 那么可以使用 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 要下的包名 如果是永久修改镜像源 pip install pip -U pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 如果网络不好...

liuYinXin的博客 13万+

github镜像网站_推荐几个python镜像网站(让你的pip飞起来)

常常能看到,用python的伙伴在安装体积较大的库时,速度看的让人揪心,还总是容易报错,安装失败了,特打击小白对python的热情。为什么pip库的时候会特别慢呢?本期主要介绍几种国内镜像网站,让你安装库的时候飞起来。一、pip慢的原因pip是一个非常流行的python包管理工具,在命令行中只需要输入pip install package_name,就可以自动安装第三方库。但是pip是从...

weixin_39635567的博客 5367

利用国内镜像(豆瓣、清华)网站,安装python第三方库的方法(pytest、selenium、requests等)

利用国内镜像网站,安装python的第三方库; 1、豆瓣镜像:在cmd中运行如下语句,可以安装第三方库selenium; 如果想要安装别的库(例如requests),则只需要把其中的库名selenium,换成你想要安装的库的名字(例如requests)即可。 pip install selenium -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 安装:selenium 安装:requests pip inst

IT_new_help的博客 5527

python实现清华大学联网助手(三)——linux下带参数的自定义命令/import机制

上两篇已经大致满足了我起初设计的需求。 最后,对代码进行了一些优化,并且修改代码使一些函数方法可以重用。最终实现了如下功能:登录校园网、登出校园网、查询当前网络状态、查询流量、帐户余额、当前用户组等基本信息、查询本账号当前在线IP信息、查询每日流量使用明细并生成直方图。 本篇主要探讨两个问题: 1 如何将.py脚本制作成linux下带参数的自定义命令; 2 import机制及使用。

coderhuhy的专栏 2763
上一篇: A-star算法概述及其在游戏开发中的应用分析
下一篇: python实现清华大学联网助手(二)——正则表达式re/网页跳转/cookiejar
coderhuhy
博客等级 码龄12年 24粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值