今天遇到一个奇奇怪怪的网站,url类似这种: ‘https://www.*******.com/search_%25E5%258F%25AB%25E6%2588%2591%25E9%259D%2593%25E5%25A5%25B3’ search后面跟着那么长一串,让人摸不着头脑。
一些废话爬取网站信息的第一步就是,根据关键词,构建出包含着”爬取意图“的URL,也就是把key的值加进去。 有些很朴素的网站,不用对key进行编码,直接粘上关键词就能搜索; 很多常规的是对中文关键词进行’utf-8’或‘gb2312’编码即可。
解决方法各种尝试了一通,发现这是进行了双重编码处理的,从每个%后面都跟着25便可发现端倪。 最后,终于被我发现了,这是先用’utf-8’编码,再套了一层’gb2312’… 上代码:
from urllib import parse keyword = '叫我靓女' wd = urllib.parse.quote(keyword.encode('utf-8')) ress = urllib.parse.quote(wd.encode('gb2312')) print(ress)输出结果:
%25E5%258F%25AB%25E6%2588%2591%25E9%259D%2593%25E5%25A5%25B3问题解决!