Python 类型为'的bs4对象;答复';没有len()
我一直在尝试让它工作,但一直得到相同的TypeError对象没有len()。BeautifulSoup文档没有任何帮助。这似乎适用于我观看和阅读的每一个教程,但对我来说不是。我做错了什么Python 类型为'的bs4对象;答复';没有len(),python,Python,我一直在尝试让它工作,但一直得到相同的TypeError对象没有len()。BeautifulSoup文档没有任何帮助。这似乎适用于我观看和阅读的每一个教程,但对我来说不是。我做错了什么 import requests from bs4 import BeautifulSoup http = requests.get("https://www.imdb.com/title/tt0366627/?ref_=nv_sr_1") print(http) 这将返回响应[200],但如果我尝试添加汤
import requests
from bs4 import BeautifulSoup
http = requests.get("https://www.imdb.com/title/tt0366627/?ref_=nv_sr_1")
print(http)
这将返回响应[200],但如果我尝试添加汤。。。我得到了len错误:
import requests
from bs4 import BeautifulSoup
http = requests.get("https://www.imdb.com/title/tt0366627/?ref_=nv_sr_1")
soup = BeautifulSoup(http, 'lxml')
print(soup)
比如说:
要解析文档,请将其传递到BeautifulSoup
构造函数中。您可以传入字符串或打开的文件句柄:
响应
对象既不是字符串,也不是打开的文件句柄
如中的第一个示例所示,获取其中一个的最简单方法是.text
属性。因此:
http = requests.get("https://www.imdb.com/title/tt6738136/?ref_=inth_ov_tt")
soup = BeautifulSoup(http.text, 'lxml')
有关其他选项,请参见-例如,您可以使用
.content
获取字节,让BeautifulSoup猜测编码,而不是从标题读取编码,或者使用.raw
获取套接字(这是一个打开的文件句柄),从以下代码中获取响应-200:
import requests
from bs4 import BeautifulSoup
http = requests.get("https://www.imdb.com/title/tt6738136/?ref_=inth_ov_tt")
print(http)
显示您的请求已成功并返回响应。要解析HTML代码,有两种方法:
从bs4导入BeautifulSoup
http=请求。获取(“”
打印(http.text)
HTML
解析器
导入请求从bs4导入BeautifulSoup
http=请求。获取(“”
soup=BeautifulSoup(http.text,'lxml')
印花(汤)
最好使用
BeautifulSoup
,因为这样可以从HTML
中提取所需的数据,以防您需要它我的最终代码。它只是打印出标题、年份和摘要,这正是我想要的。谢谢大家的帮助
import requests
import lxml
from bs4 import BeautifulSoup
http = requests.get("https://www.imdb.com/title/tt0366627/?ref_=nv_sr_1")
soup = BeautifulSoup(http.content, 'lxml')
title = soup.find("div", class_="title_wrapper").find()
summary = soup.find(class_="summary_text")
print(title.text)
print(summary.text)
谢谢大家。我还有更多的书要读。lxml是首选的soup解析器吗?
lxml
是第三方HTML解析器,而HTML.parser
是Python内置的HTML解析器。检查使用不同HTML解析器的优缺点[@Keith文档说“如果可以,我建议您安装并使用lxml以提高速度。”使用其他解析器的唯一好理由是(a)由于某种原因,您无法安装二进制扩展模块,(b)您已经严重破坏了HTML,需要交叉手指,希望有更接近Mozilla“怪癖模式”的东西可能是正确的。谢谢。lxml包含在我的Anaconda Python安装中。所以我很好。Anaconda Python 3.6.5。但是我创建了conda环境,所以…的直接副本,这反过来又是的副本,尽管最后一个问题和标题不是很好。请检查是否存在重复的So问题,然后再问同样的问题再次单击。使用右上角的搜索框。