Когда я использую локальный файл html, хранящийся на моем ноутбуке,
from bs4 import BeautifulSoup
site = open('smpl.htm', 'r')
page = BeautifulSoup(site.content, 'html.parser')
print(page)
возвращает (в cmd):
Traceback (most recent call last):
File "c:/~~~~~~/python/h.py", line 3, in <module>
page = BeautifulSoup(site.content, 'html.parser')
AttributeError: '_io.TextIOWrapper' object has no attribute 'content'
, но заменяя site.content
на site.read()
, код показывает правильный HTML и выполняет операции с ним без проблем.
Однако, если я получу свой файл HTML из Интернета через requests
, то мне придется напишите site.content
, а не site.read()
для его анализа.
В чем разница между содержимым и read () и что для чего подходит?