【Python爬虫】解析百科地址(python爬虫百度贴吧)

网友投稿 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小时内删除侵权内容。

上一篇:Python磨刀篇|函数参数、星号、斜杠等用法总结(python输出斜杠)
下一篇:Python计算素数学习记录(python素数算法)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~