python3 网址路径中带中文的处理办法

由于python目前不能直接处理中文路径,必须要转化一下,如下例子是下载图片(名字为中文的):

def getInfo(self,imageurl):
        response = urllib.request.urlopen(imageurl).read().decode(‘utf-8‘)
#         with open("text1.txt",‘w‘,encoding=‘utf-8‘) as file:
#             file.write(response)
#         file.close()
        imageRe = re.compile(r‘<a href=\"(.+)\" title‘)
        for image in imageRe.findall(response):
            pattern = re.compile(r‘^(http://.+/)(.+[jpg|JPG])$‘)
            matchUrl = pattern.match(image)
            if matchUrl:
                ‘由于Python不能解析中文路径,所以quote一下中文字符‘
                imagePath = urllib.parse.urljoin(matchUrl.group(1), urllib.parse.quote(matchUrl.group(2)))
                self.count  =self.count+1
                path = matchUrl.group(2)
                print(imageurl)
                print(image)
                ‘save picture‘
                urllib.request.urlretrieve(imagePath, path)

def getLink(self,url):
        response = urllib.request.urlopen(url).read().decode(‘utf-8‘)
        linkRe = re.compile(r‘href="(http://.+\d+)" title=‘)
        for link in linkRe.findall(response):
            self.getInfo(link)
#         with open("text.txt",‘w‘,encoding=‘utf-8‘) as file:
#             file.write(response)
#         file.close()

python3 网址路径中带中文的处理办法

时间: 2024-09-30 19:48:26

python3 网址路径中带中文的处理办法的相关文章

WP8_UTF8 to GB2312转码 (url网址中带中文字符的处理)

直接使用例如:http://www.abc.php?name=中文符 ,客户端调用,在服务端修改后,会出现乱码, 而windows phone 又不能直接支持gb2312, 经过大量分析和验证,发现 凡事 经过"从汉字转换到16进制"后, 即可成功实现转码,代码如下: string text = "中文符"; string url1 = "http://www.abc.php?name="; string url2 = url1 + Utf8To

python爬虫:解决请求路径中含义中文或特殊字符

一.解决请求路径中含义中文或特殊字符(/n,/t等): 1 httpurl=urllib.parse.quote(new_url, safe=string.printable)  注意:new_url必须是只有一个单引号或者双引号,如果是下面这个既有单引号,也有双引号,就会出现urlerror: new_url='"http://news.sina.com.cn/o/2017-06-08/doc-ifyfzaaq5698972.shtml"'

解决Java工程路径中含有中文的情况

问题: 当Java工程路径中含有中文时,得不到正确的路径 *** 解决: 这其实是编码转换的问题.当我们使用ClassLoader的getResource方法获取路径时,获取到的路径被URLEncoder.encode(path,"utf-8")编码了,当路径中存在中文和空格时,他会对这些字符进行转换,这样,得到的往往不是我们想要的真实路径,所以我们可以调用URLDecoder.decode()方法进行解码,以便得到原始的中文及空格路径. Java代码 : String package

解决python中路径中包含中文无法找到文件的问题

a="C:\Users\Dell\Desktop\ATOU\公共测试用例" (带中文的路径) a=a.decode("utf-8").encode("gbk") (进行转码) import sys  sys.path.append(a)  (指定路径成功) 合并起来一条: import sys sys.path.append("C:\Users\Dell\Desktop\ATOU\公共测试用例".decode("ut

ios网址解析中,中文部分如何处理

在网络解析中,中文出现的时候,在解析数据是中文会显示为 %E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85 这样的形式但是如果我们之间用字符串拼接键值对的时候但多数出现的不是错误数据就是我们不想要的数据,那如何将 中文编码成这样的形式呢. 现在介绍一个简单方法 (ios) NSString *srt=@"火影忍者"; NSLog(@"%@",[srt stringByAddingPercentEscapesUsingEncoding:NSUTF

[Liferay6.2]启动Tomcat提示APR不能在java类库路径中被找到的解决办法

问题描述 启动liferay之后,在控制台中打印出会打印出以下信息: 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:…… 意思是可让生产环境中达到最佳性能的Apache Tomcat本地库为基础的APR(Apache可移植运行库)不能在java类库路径中

SpringMVC(七) RequestMapping 路径中带占位符的URL

使用方法:在@RequestMapping("/delete/{id}")中,通过{id}带入pathvariable,然后在方法中,通过@PathVariable("变量名称") Iteger id 的方式引入占位符. 控制器代码: package com.tiekui.springmvc.handlers; import org.springframework.stereotype.Controller; import org.springframework.w

PLSQL往表中插入中文乱码解决办法

1.查看服务器端编码:select userenv('language') from dual; 2.查看第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和第一步得到的值一样:select * from V$NLS_PARAMETERS 3.如果不同,则需要设置环境变量:key:NLS_LANG,value:AMERICAN_AMERICA.AL32UTF8 4.重新启动PLSQL,问题解决.

Python使用urllib时url带中文参数的问题

urllib.request.urlopen(url).read().decode('utf-8') url中带中文参数会出错:UnicodeEncodeError: 'ascii' codec can't encode characters in position 84-86: ordinal not in range(128) 需要对中文进行转码 url = GEOCODE_BASE_URL + urllib.parse.quote('北京市') 文档中对urlib.parse.quote的