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

使用BeautifulSoup与requests时出现TypeError的问题排查

解决BeautifulSoup传入Response对象引发的TypeError问题

嘿,作为Python新手碰到这个问题太正常了,我来帮你快速搞定!

问题根源

你这里犯了一个很典型的小错误:requests.get()返回的是一个Response对象,而不是直接的HTML文本内容。BeautifulSoup需要的是字符串(或字节)形式的网页源码,当你直接把Response对象传给它时,它会尝试去获取这个对象的长度(len()),但Response对象本身并没有这个方法,所以就抛出了TypeError: object of type 'Response' has no len()这个错误。

修复代码

只需要把Response对象转换成网页文本内容就行,修改这一行:

soup = BeautifulSoup(thepage, "html.parser")

改成下面两种方式的任意一种:

  • 使用text属性(requests自动帮你解码后的字符串):
    soup = BeautifulSoup(thepage.text, "html.parser")
    
  • 使用content属性(原始字节形式,适合需要手动处理编码的场景):
    soup = BeautifulSoup(thepage.content, "html.parser")
    

额外小提示

Response对象还包含很多有用的信息,比如thepage.status_code可以查看请求是否成功(200表示成功),thepage.headers能看到响应头信息,以后调试的时候可以用上这些。

测试一下修改后的代码,你应该就能正常打印出Twitter页面的title了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:28:10