curl -s -S -O -J -L 'https://url/report/ajax-by-tag2?platform_id\[\]=7&id1=All&id2=&id3=&id4=All&id5=&id11=&id12=&id13=&date=2019-11-17&date_start=&date_end=&website=&zfTablePage=1&zfTableColumn=&zfTableOrder=desc&zfTableQuickSearch=&zfTableItemPerPage=100&zfTableDataTablesMaxRows=31&zfDetails=false&by_viewability=imps_givt&device_id\[\]=all&tag_type_id\[\]=all&support_id\[\]=all&zfTableItemPerPage=10000&zfTableExport=xlsx' -H 'Cookie: PHPSESSID=6m1d8327ucft8052f2gjv6nfdsg6'
手动下载文件时,会从网络面板收集以上内容。通过上面的curl,我可以从shell下载文件。这是通过在输入的末尾硬性说明cookie来实现的。
#!bash/sh
-eu
curl -u usr:pwd -c ./cookiejar 'https://url/auth'
curl 'https://url/auth/adminaccounts' -d account=729&Submit=Submit
curl -s -S -O -J -L -b ./cookiejar 'https://url/report/ajax-by-tag2?platform_id\[\]=7&id1=All&id2=&id3=&id4=All&id5=&id11=&id12=&id13=&date=2019-11-17&date_start=&date_end=&website=&zfTablePage=1&zfTableColumn=&zfTableOrder=desc&zfTableQuickSearch=&zfTableItemPerPage=100&zfTableDataTablesMaxRows=31&zfDetails=false&by_viewability=imps_givt&device_id\[\]=all&tag_type_id\[\]=all&support_id\[\]=all&zfTableItemPerPage=10000&zfTableExport=xlsx'
当我运行“手动代码”时,只要我的“ cookie”是我将其硬编码在URL末尾的“ -H”之后的最新会话中,便可以将文件下载到当前目录中。
当我运行“错误脚本”时,似乎可以通过身份验证正常运行,选择帐户并转到下载部分的最后一行。但是,在运行下载网址时,它会弹出以下错误curl: (23) Failed writing body (0 != 11895)
已经查看了在线论坛,似乎表明磁盘空间不足,这在这里不应该是这样,因为它是一个小的excel文件。
任何反馈都非常感谢。
答案 0 :(得分:1)
#!/bin/sh
set -eu
rm -f cookiejar ##deletes cookiejar file at the start, so no cookies are saved
curl -o /dev/null -s -S -L -f -c cookiejar 'https://url/auth/authenticate' -d name=usr-d passwd='pwd' ##supplies user creds
curl -o /dev/null -s -S -L -f -b cookiejar -c cookiejar 'https://url/auth/adminaccounts' -d account=23225 ##selects account
curl -s -S -L -O -J -f -b cookiejar -c cookiejar 'https://url/report/ajax-by-tag2?platform_id\[\]=7&id1=All&id2=&id3=&id4=All&id5=&id11=&id12=&id13=&date=2019-11-17&d$' ##downloads file