Python 如何处理HTML表单中的换行符?

Python 如何处理HTML表单中的换行符?,python,html,forms,post,mechanize,Python,Html,Forms,Post,Mechanize,我有一个带有textarea的表单,需要向textarea提交多行输入 我使用: rows = [('a','b'), ('c','d')] data_set = [ '%s\n' % '|'.join(row) for row in rows ] # Note : ADDED '\n' data_dump = ''.join(data_set) from mechanize import Browser br = Browser() br.open('http://example.com/

我有一个带有
textarea
表单
,需要向
textarea
提交多行输入

我使用:

rows = [('a','b'), ('c','d')]
data_set = [ '%s\n' % '|'.join(row) for row in rows ]  # Note : ADDED '\n'
data_dump = ''.join(data_set)

from mechanize import Browser
br = Browser()
br.open('http://example.com/page.html')
br.select_form(nr=1)
br.form['my_text_area']=data_dump
br.submit()
问题:

  • Web服务器无法将输入视为多行
  • 添加的
    \n
    不适用于模拟输入中的换行
我做错了什么?

如果我遗漏了什么,请随时询问更多信息

更新


我还尝试用
\n\r
代替
\n
,但问题仍然存在。

我在

CR
=\r
LF
=\n

HTML表单的换行符为
CRLF
,因此:


\r\n
工作正常

我是在他的帮助下弄明白的

CR
=\r
LF
=\n

HTML表单的换行符为
CRLF
,因此:


\r\n
工作正常

我不知道,因为它是一个公共网站。我想是某种“Linux”服务器。虽然,我理解特定于平台的换行符,但HTTP协议不包括这一点吗?(对于本例!)这不是我的代码的一部分,
数据\u dump
只是一个包含
\n
的字符串。您如何知道webserver无法将输入视为多行?你看了原始发布的数据了吗?您刚才查看了webserver的HTML输出吗?@SalmanA将数据提交到服务器后,它会回复。当我在chrome或firefox中打开html回复时,只会显示一行输入的错误
。此外,回复中的数据以多行形式显示。如果我
ctrl-A
然后
ctrl-V
并手动将其提交到网页,它将接受它。但它不接受通过我的脚本。似乎是chrome和myscript如何处理换行的问题。此外,由于mechanize会自动对数据进行url编码,因此我无法灵活地为换行符生成原始表单。在调试
提交的数据时,服务器将换行符作为
%0A%0D
接受,其中as
\n
仅转换为
%0A
。你可以试穿一下:我不知道,因为它是一个公共网站。我想是某种“Linux”服务器。虽然,我理解特定于平台的换行符,但HTTP协议不包括这一点吗?(对于本例!)这不是我的代码的一部分,
数据\u dump
只是一个包含
\n
的字符串。您如何知道webserver无法将输入视为多行?你看了原始发布的数据了吗?您刚才查看了webserver的HTML输出吗?@SalmanA将数据提交到服务器后,它会回复。当我在chrome或firefox中打开html回复时,只会显示一行输入的错误
。此外,回复中的数据以多行形式显示。如果我
ctrl-A
然后
ctrl-V
并手动将其提交到网页,它将接受它。但它不接受通过我的脚本。似乎是chrome和myscript如何处理换行的问题。此外,由于mechanize会自动对数据进行url编码,因此我无法灵活地为换行符生成原始表单。在调试
提交的数据时,服务器将换行符作为
%0A%0D
接受,其中as
\n
仅转换为
%0A
。您可以试穿: