python中17=x_使用python 3.x 对pythonchallenge-----17的解答过程

#http://www.pythonchallenge.com/pc/return/romance.html username : huge password : file

#you+should+have+followed+busynothing...

#%B2hs%C0%9Fy%E3D%BC%8B%EB%B8i%98lu2o%5D%C9%A0

from urllib import request,response,parse

import urllib

from http import cookies,cookiejar

import bz2

postdata= urllib.parse.urlencode({

'Username': 'huge',

'Password': 'file'

}).encode('utf-8')

header = {

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

#"Accept-Encoding":"gzip, deflate, br",

"Accept-Language":"zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3",

"Authorization": "Basic aHVnZTpmaWxl",#授权头,账号密码

"Connection":"keep-alive",

"Host":"www.pythonchallenge.com",

"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/55.0"

}

url = r'http://www.pythonchallenge.com/pc/return/romance.html'

url_linkedlist = r'http://www.pythonchallenge.com/pc/def/linkedlist.php?busynothing='

url_linkedlist1 = r'http://www.pythonchallenge.com/pc/def/linkedlist.php?busynothing=12345'

def getcookie(req):

#声明一个CookieJar对象实例来保存cookie

ck = cookiejar.CookieJar()

#利用urllib.request库的HTTPCookieProcessor对象来创建cookie处理器,也就CookieHandler

handler = request.HTTPCookieProcessor(ck)

#通过CookieHandler创建opener

opener = request.build_opener(handler, request.HTTPHandler)

r = opener.open(req)

htmltext = r.read().decode()

nothing =htmltext.split(' ')[-1]

print(htmltext + "-------" + nothing)

opener.close()

for item in ck:

#return (item.name + " : " + item.value)

return (item.value,nothing)

nothing = '12345'

list = []

for i in range(400):

if nothing != 'it.':

req = request.Request(url_linkedlist+nothing,postdata,header)

reqcookie = getcookie(req)

print(i,end=" : ")

nothing = reqcookie[1]

list.append(reqcookie[0])

answer = "".join(list)

print("")

print(bz2.decompress(parse.unquote_to_bytes(answer.replace('+', '%20'))).decode('ascii'))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我不熟悉 protoc *.proto --python_out=. 的语法,但是我可以提供一些参考资料:https://developers.google.com/protocol-buffers/docs/pythontutorial。 ### 回答2: `protoc *.proto --python_out=.` 这个命令是用于使用 Protocol Buffers 编译器(protoc)将所有的 .proto 文件编译成 Python 代码。 `protoc` 是 Protocol Buffers 编译器的命令行工具。Protocol Buffers 是一种语言无关、平台无关、可扩展的数据序列化格式,广泛用于异构系统间的数据传输和存储。它通过使用 .proto 文件定义消息的结构和字段,然后通过编译器生成相应的代码。该命令后面的 `*.proto` 代表通配符,表示要编译所有的 .proto 文件。 `--python_out=.` 是一个编译器选项,用于指定生成的 Python 代码的输出目录。`.` 代表当前目录,表示输出到当前目录下。 总之,这条命令的作用是将所有的 .proto 文件编译成 Python 代码,并将生成的代码输出到当前目录。编译后的代码可以用于在 Python 程序使用已定义的消息结构和字段,进行数据的序列化和反序列化,以及数据的传输和存储等操作。 ### 回答3: "protoc *.proto --python_out=." 是一个命令行指令,用于将所有.proto文件编译为Python代码。 首先,"protoc"是Protocol Buffers的编译器,它用于将.proto文件转换为具体的编程语言代码。而"*.proto"表示在当前目录下的所有.proto文件都会被编译。 "--python_out=."是命令行参数,用于指定生成的Python代码的输出路径。其"."表示当前目录。 因此,该命令的作用是将当前目录下的所有.proto文件编译为Python代码,并将生成的代码保存在当前目录。 这样,我们可以使用生成的Python代码来在Python程序使用定义在.proto文件的消息类型和服务,实现消息的序列化和反序列化,以及进行远程过程调用等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值