Python 爬虫 URL中存在中文或特殊符号无法请求的解决方法

转自 :https://blog.csdn.net/hanchaobiao/article/details/72863277

https://blog.csdn.net/cc9200/article/details/79999741

  1.  
  2. from urllib.parse import quote

  3. import string

  4.  
  5. #解决请求路径中含义中文或特殊字符

  6. url_ = quote(new_url, safe=string.printable);

  7.  

 

 

比如

r=requests.get('www.xxx.com/?city=上海')

这时候可能会导致urlerror,之所以说可能,是因为有的网站后台可能有转码机制,特别是大网站,他们会把地址做一次转码。

对于那些没有做转码的站,则需要自己先转码,转成类似于这种:

'%E4%B8%8A%E6%B5%B7'   ‘上海’

这是中文字符的编码格式,16进制表示

所用到的包是

from urllib import parse

代码如下

 
  1. from urllib import parse

  2. url='www.xxx.com/?city={}'.format(parse.quote('上海'))

r=requests.get(url)

www.xxx.com/?city=%E4%B8%8A%E6%B5%B7

--------------------- 本文来自 螺纹钢铁侠 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/cc9200/article/details/79999741?utm_source=copy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值