问题描述
今天遇到一个奇奇怪怪的网站,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
问题解决!