Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 类型为'的bs4对象;答复';没有len()_Python - Fatal编程技术网

Python 类型为'的bs4对象;答复';没有len()

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],但如果我尝试添加汤

我一直在尝试让它工作,但一直得到相同的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],但如果我尝试添加汤。。。我得到了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问题,然后再问同样的问题再次单击。使用右上角的搜索框。