关于Python 3.x爬虫爬取某些网站资源时,碰到UnicodeDecodeError: 'utf-8' codec can‘t......的解决办法

本文介绍了解决Python3.x爬虫在爬取特定网站资源时遇到的UnicodeDecodeError问题的方法。通过调整url_open()函数,将网页源码转换为字符串,避免了因编码问题引发的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Python 3.x爬虫爬取某些网站资源时,碰到UnicodeDecodeError: 'utf-8' codec can‘t......的解决办法


本文简要概述:爬虫小程序本身很简单,就是爬取一个指定网站上的资源(本文中是图片)。但是对于某些Python小小白来说,可能会遇到某些奇奇怪怪的自己解决不了的问题。所以我决定针对一系列的“坑”写点东西。此文为其一。

 

代码如下:

import urllib.request as urt
import re

def url_open(url):
    req = urt.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0')
    page = urt.urlopen(req)
    html = page.read().decode('utf-8')
    
    return html
def get_img(html):
    p = r'<img src="([^"]+\.jpg)"'
    filelist = re.findall(p, html)
    for each in filelist:
        filename = each.split('/')[-1]
        urt.urlretrieve(each, 'E:\py_Down\HG_Python专属纸篓\爬虫图库\www.27270.com\\'+filename, None)
        
    print("蜘蛛工作完毕")

if __name__ == '__main__':
    url = 'http://www.27270.com/ent/meinvtupian'
    get_img(url_open(url))

报错图片:


        某些小白盆友遇到此问题可能会立即选择上网查对应报错解决办法,接着可能会发现一些帖子所说的办法并不管用。

此时,你需要明确的是,你所写的url_opon()方法目的是得到什么?是得到指定网页的源码字符串,以供后续方法进行爬取操作。

所以,修改url_open()方法为:

def url_open(url):
    req = urt.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0')
    page = urt.urlopen(req)
    html = str(page.read())
    
    return html

即可解决此问题。

类似报错可以参考此问题及解决办法。

over

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值