为了账号安全,请及时绑定邮箱和手机立即绑定

含有中文的url不能download,

包含中文的url都不能download,,,求解

https://img1.sycdn.imooc.com//5c39acc300019a9a24941820.jpg

https://img1.sycdn.imooc.com//5c39ad6700019fef16360910.jpg

正在回答

3 回答

import urllib.request
from urllib.parse import quote
import string


class HtmlDownloader(object):
   
   
    def download(self,url):
        if url is None:
            return None
        s=quote(url,safe=string.printable)
       
        response=urllib.request.urlopen(s)
        if response.getcode()!=200:
            return None
        return response.read()

urllib.quote 解决Python传递中文参数给URL

0 回复 有任何疑惑可以回复我~
def _get_new_urls(self, page_url, soup):
    new_urls = set()
    #<a target="_blank" href="/item/%E9%98%BF%E5%A7%86%E6%96%AF%E7%89%B9%E4%B8%B9/2259975" data-lemmaid="2259975">阿姆斯特丹</a>
    #https: // baike.baidu.com / item / 阿姆斯特丹 / 2259975
    links = soup.find_all('a',href=re.compile(r"/item/"))
    for link in links:
        new_url = '/item/'+link.get_text()
        new_full_url = urlparse.urljoin(page_url,new_url)
        new_urls.add(new_full_url)
    return new_urls

我也是这么写的,有哪里写错了吗?

0 回复 有任何疑惑可以回复我~
#1

BSH

soup用URLEncoder.encode进行编码,soup = URLEncoder.encode(soup,"utf-8");
2019-02-16 回复 有任何疑惑可以回复我~

https://img1.sycdn.imooc.com//5c3b02c10001628204490125.jpg

这一步务必使用函数进行url的拼接,带有中文的url会有编码问题

1 回复 有任何疑惑可以回复我~
#1

赵崇辉 提问者

我也是这么写的,有哪里写错了吗?
2019-01-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python开发简单爬虫
  • 参与学习       227670    人
  • 解答问题       1219    个

本教程带您解开python爬虫这门神奇技术的面纱

进入课程

含有中文的url不能download,

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信