我正在尝试使用BeautifulSoup和Selenium来浏览youtube播放列表。我希望能够将网页的html保存到一个文本文件中,这样,当我使用BeautifulSoup时,我不需要继续运行脚本的其余部分来打开浏览器并获取html
这是我的代码的缩短版本,给出了错误:“UnicodeEncodeError:'charmap'编解码器无法对位置0:字符映射到的字符'\u200b'进行编码”
我知道我可以将其保存为utf-8格式的文本文件,但我不确定如何将其转换回ASCII以使用BeautifulSoup解析它
我的代码:
from pathlib import Path
from selenium import webdriver
from bs4 import BeautifulSoup
def test_html_save():
playlist_url = 'https://www.youtube.com/watch?v=IdneKLhsWOQ&list=PLMEZyDHJojxNYSVgRCPt589DI5H7WT1ZK'
browser = webdriver.Firefox()
browser.get(playlist_url)
html_content = browser.page_source # Getting the html from the webpage
browser.close()
soup = BeautifulSoup(html_content, 'html.parser') # creates a beautiful soup object 'soup'.
html_save_path = Path(__file__).parent / ".//html_save_test.txt"
with open(html_save_path, 'wt') as html_file:
for line in soup.prettify():
html_file.write(line)
test_html_save()
我的问题是如何将网页的整个html保存到.txt文件中
将
encoding
参数设置为utf-8
:您的目的是从视频中删除视频标题和频道名称。以下是执行此操作的完整代码:
输出:
相关问题 更多 >
编程相关推荐