无法将chromedriver page_source写入文件



我正在尝试将chromedriverpage_source写入文件。失败:我看到一个空文件,没有错误消息。

问题不在于文件创建——我的问题不是,而不是。使用with open .. as f正确打开文件,使用f.close正确关闭文件。当用伪字符串"hello"替换驱动程序page_source时,该文件也会写得很好。

以下代码运行时没有错误消息,也创建了文件,但在0 KB时为空:

from selenium import webdriver
driver = webdriver.Chrome(r'chromedriver.exe', options=options)
driver.get(url)
with open('myFile.html', "w") as f:
f.write(driver.page_source)
f.close()

驱动程序运行良好,driver.page_source的值似乎也不错。如果我运行print(driver.page_source),它会显示一些有意义的HTML代码:

print(driver.page_source)
>>> <html lang="de" style="" class="js flexbox ...

以下代码运行时也没有出现错误,并产生预期的结果:一个包含字符串"hello"的文件:

from selenium import webdriver
driver = webdriver.Chrome(r'chromedriver.exe', options=options)
driver.get(url)
with open('myFile.html', "w") as f:
f.write('hello')
f.close()

为什么?

write内部发生了什么,再加上driver.page_source的实际值,会阻止文件写入?

您注意到在尝试写入文件时抛出的异常吗?是UnicodeEncodeError吗?如果是这样,您需要添加所需的编码:

with open('myFile.html', "w", encoding='utf-8') as f:

此外,当您使用with子句时,您不需要添加f.close()

相关内容

  • 没有找到相关文章

最新更新