Windows使用请求在python中向html文件中添加大量空格/换行符

Windows使用请求在python中向html文件中添加大量空格/换行符,python,html,python-requests,jupyter-notebook,newline,Python,Html,Python Requests,Jupyter Notebook,Newline,使用下面的代码,当在windows上运行代码(在python3上的jupyter笔记本中)时,文件中的每一行和每一行之间都会出现一行或多行换行符,但在mac或Linux上运行时则不会 我想这是某种编码问题吧?与window的“/r/n”恶作剧有关吗?做一件事;str(page.content)反而给我留下了一个满是/r/n`的文件,正如预期的那样,但我不确定为什么它一开始就充满了新行 注意:我已经注释了一种快速删除空白的方法,但这有点像黑客,并不是我真正想要的,我更想知道为什么要添加空白 imp

使用下面的代码,当在windows上运行代码(在python3上的jupyter笔记本中)时,文件中的每一行和每一行之间都会出现一行或多行换行符,但在mac或Linux上运行时则不会

我想这是某种编码问题吧?与window的“
/r/n
”恶作剧有关吗?做一件事;str(page.content)
反而给我留下了一个满是
/r/n`的文件,正如预期的那样,但我不确定为什么它一开始就充满了新行

注意:我已经注释了一种快速删除空白的方法,但这有点像黑客,并不是我真正想要的,我更想知道为什么要添加空白

import requests

url = 'https://stackoverflow.com/questions/3030487/is-there-a-way-to-get-the-xpath-in-google-chrome'
page=requests.get(url)

newhtml = page.text

# import re
# newhtml = re.sub(r'\s\s+', ' ', page.text)

f = open('webpage.html', 'w', encoding='utf-8')
f.write(newhtml)
f.close()
结果样本:


有没有办法在google chrome中获取xpath堆栈溢出

看起来好像是C14L搞定了它。(我如何给你互联网点数作为评论,只能作为回答,对吗?)

我切换到
f=open('webpage.html','wb',encoding='utf-8')
,它抱怨道

ValueError:二进制模式不接受编码参数

因此,使
f=open('webpage.html','wb')
投诉

TypeError:需要类似字节的对象,而不是“str”

所以我把
newhtml=page.text
切换到
newhtml=page.content
,瞧,输出和预期一样。现在来测试一下,看看它不会破坏mac/Linux上运行的任何东西

最终功能代码:

import requests

url = 'https://stackoverflow.com/questions/3030487/is-there-a-way-to-get-the-xpath-in-google-chrome'
page=requests.get(url)

newhtml = page.content

f = open('webpage.html', 'wb')
f.write(newhtml)
f.close()

我认为这可能与open的
换行符
参数有关。在“文本模式”中,Windows可能会将其
\r
添加到换行符中。尝试在第二个参数中使用“binary more”和附加的
b
f=open('webpage.html','wb',encoding='utf-8')
。但不确定Pythion 3.x中是否仍然存在这种情况。例如@C14L是的,我认为它在最新版本之前仍然有效。
import requests

url = 'https://stackoverflow.com/questions/3030487/is-there-a-way-to-get-the-xpath-in-google-chrome'
page=requests.get(url)

newhtml = page.content

f = open('webpage.html', 'wb')
f.write(newhtml)
f.close()