爬虫遇到url地址中文字转码问题

当url地址含有中文,或者参数有中文的时候,把这样的url作为参数传递的时候,需要把一些中文甚至'/'做一下编码转换。

所以对于一些中文或者字符,url不识别,就需要我们进行转换。

python中的urlencode与urldecode

一、urlencode

urllib库里有一个urlencode函数,它可以把key-value键值对直接转换成 我们想要的格式

举个例子

import urllib.parse

datas = {}

datas['name'] = '小张'

datas['age'] = '18?'

datas['level'] = 'Dd'

data = urllib.parse.urlencode(datas)

print(data)

 结果如下:

name=%E5%B0%8F%E5%BC%A0&age=18%3F&level=Dd

urllib还有一个quote(),是直接对一个字符串进行转换

import urllib.parse

data = '小张'

data = urllib.parse.quote(data)

print(data)

结果为:

%E5%B0%8F%E5%BC%A0

二、urldecode

有些时候url地址上的中文字已经被转码,所以我们爬取多个相同链接时需要对其传入的汉字进行转换,在urllib中有个unquote()函数对其进行转换

import urllib.parse

data = '%E5%B0%8F%E5%BC%A0'

data = urllib.parse.unquote(data)

print(data)

结果是:

小张

 

你可能感兴趣的:(个人随笔)