You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python网页爬虫报错求助:TypeError类型错误排查

解决 TypeError: a bytes-like object is required, not 'str' 错误

嘿,这个错误我太熟了!核心问题就是字节对象(bytes)和字符串(str)类型不兼容导致的。咱们一步步拆解解决:

问题根源

你代码里的page变量是字节流类型(比如用requests.get(url).content或者urlopen.read()获取的内容),但你调用page.find("<a href=")时传入的是字符串参数——Python不允许直接在字节对象上用字符串做查找操作,所以抛出了这个类型错误。

两种快速解决方案

方案1:获取网页时直接拿到字符串

如果是用requests库爬取网页,把原来的content换成text即可(它会自动根据网页编码把字节流解码成字符串):

import requests
response = requests.get("你的目标URL")
page = response.text  # 这里得到的是字符串,不是bytes

如果是用urllib库,获取字节流后手动解码:

from urllib.request import urlopen
response = urlopen("你的目标URL")
page_bytes = response.read()
page = page_bytes.decode('utf-8')  # 可根据网页实际编码调整,比如gbk、gb2312等

方案2:把查找的字符串转成字节

如果你想保留字节对象的处理方式,也可以把要查找的字符串转成字节(在字符串前加b前缀):

start_link = page.find(b"<a href=")  # 注意前面的b,将字符串转为字节类型

小提示

更推荐用方案1转成字符串处理,因为后续解析网页标签、提取内容时,字符串操作会更直观方便,不容易再踩类型不匹配的坑。

内容的提问来源于stack exchange,提问作者Eric Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:35:16