Flask接口签名sign原理与实例代码浅析
433
2022-08-26
【Python爬虫】解析百科地址(python爬虫百度贴吧)
记录时间 : 2020/08/05
前言 :常用反爬方法设置headers,需要在headers的中设置Referer的值,Referer的值是个网址。网址可能会用到加密、转换等方法获得。
摘要 : 这次记录的是百度百科网址转换方法之一。
测试包括 : 魑、 *、$、listen()、9527
预想: 此次内容适用中文字符、符号【特殊字符请前先自行测试】
内容记录
构想 1. 英文和中文转为十六进制(UTF-8) 2. 左数开始加“%”,然后每两位加“%”代码
使用For循环语句
chinese = ["魑","*","$"]# 字符串先变十六进制再每两位插入百分号def urlFrame_One(): for name in chinese: # name为字符串,按照指定的 encoding 将字符串转换为字节序列 namestr = bytes(name, 'UTF-8') # hex() 函数用于将10进制整数转换成16进制 namehex = namestr.hex() # text存十六进制字符串 text = "" # i存字符串长度 i = len(namehex) for n in range(i // 2): # str存放截取字符串,建议从后往前截取字符 str = namehex[i - 2 * (n + 1): i - 2 * n] # 将str从后往前串接 text = "%" + str + text print("+ text)if __name__ == '__main__': urlFrame_One()
= ["魑","*","$"]# 字符串先变十六进制再每两位插入百分号def urlFrame_Two(): # 生成 iter 迭代器 a = iter(chinese) while True: try: namebytes = bytes(next(a), 'UTF-8') # print(namebytes) namehex = namebytes.hex() i = len(namehex) # generator 生成器 # g is generator type # next(g) is str type g = ("%" + namehex[2 * (n - 1):2 * n] for n in range(1, i // 2 + 1)) # b = ("%" + str(next(g)) + str() for n in range(i // 2)) print("+ ''.join(list(g))) # StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况 except StopIteration: sys.exit()if __name__ == '__main__': urlFrame_Two()
输出
报错代码TypeError: 'float' object cannot be interpreted as an integer 报错原因Python2 中整数 / 整数 = 整数,Python3 中整数 / 整数 = 浮点,整数 // 整数 = 整数
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~