Http Post请求返回HTML而不是Csv d

2024-06-01 00:11:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一个aspx网站上取一个csv。没有到csv的直接链接,它是在发布表单时由服务器生成的。你知道吗

以下内容在使用UrlFetchApp的Google App脚本中正常工作: 它返回原始的.csv数据。你知道吗

  ..// other code omitted for brevity

  var page = UrlFetchApp.fetch(
    "https://www.mycompanyurl.com/summary.aspx", {
    "method": "POST",
    "headers": {"Cookie": myCookieData},
    "payload": {
      '_ctl0:contact:isActive': '1',
      '__VIEWSTATE': myViewstateData,
      '__EVENTTARGET': '_ctl0:Main:ButtonExport',
      '__EVENTARGUMENT': '',
      '__LASTFOCUS': '',
      '__VIEWSTATEENCRYPTED': '',
      '__PREVIOUSPAGE': ''
    }
});

Logger.log(page); // <---- prints the csv file content

我尝试在python请求库中模拟这个。你知道吗

..// other code omitted for brevity
..// cookies are in the session 's'

page = s.post(
  'https://www.mycompanyurl.com/summary.aspx', 
  data={
    '_ctl0:contact:isActive': '1',
    '__VIEWSTATE': myViewstateData,
    '__EVENTTARGET': '_ctl0:Main:ButtonExport',
    '__EVENTARGUMENT': '',
    '__LASTFOCUS': '',
    '__VIEWSTATEENCRYPTED': '',
    '__PREVIOUSPAGE': ''
  }
);

print(page) // <---- prints the html content of the page

我省略了另外两个我尝试过的库,结果都是一样的。轴心(节点.js)和请求(节点.js)你知道吗

为什么这个请求在googlescript上有效,而在其他更流行的库中却不起作用。你知道吗

可能我遗漏了一些简单的东西,但是在尝试了很多小时不同的头配置和多个库之后,我不知所措。你知道吗


Tags: csvthehttpscomforwwwpagecode
1条回答
网友
1楼 · 发布于 2024-06-01 00:11:31

我看到的两个代码片段之间的第一个区别是,您没有将cookie传递到Python版本中。你知道吗

如果您查看一下得到的HTML响应,这将是有益的。可能有一些错误消息(例如:请登录)。你知道吗

试试adding your cookies to the request,看看这是否有帮助。你知道吗

相关问题 更多 >