我正在尝试使用 wget 从我的服务器下载数据。
我发送登录详细信息并存储 cookie。然后我轮流翻阅 50 个数字,将数据复制到新文件中。保存的文件始终为空白,即文件大小为 0kb。
我的网站将数据存储在单独的页面上,例如:(我已将我的实际网站名称更改为“mywebsite”)
‘http://admin.mywebsite.com/index.php/print_view/?html=true&order_id=50
我正在尝试将数字 50 旋转到 1 并从每一页中提取数据。
我使用的代码如下:
#!/usr/bin/perl
system ("wget --post-data 'username=ghssld&password=ewui394&autologin=1' --cookies=on --keep-session-cookies --save-cookies=cookie.txt 'http://admin.mywebsite.com/index.php/login");
$x = 50;
while ($x <= 1) {
system ("wget --wait=400 --post-data 'html=true&order_id=50' --referer=http://admin.mywebsite.com/ --cookies=on --load-cookies=cookie.txt --keep-session-cookies --save-cookies=cookie.txt 'http://admin.mywebsite.com/index.php/print_view/");
system ("wget --post-data 'html=true&order_id=50' --referer=http://admin.mywebsite.com/ --cookies=on --load-cookies=cookie.txt --keep-session-cookies --save-cookies=cookie.txt 'http://admin.mywebsite.com/index.php/print_view?");
$x++;
}
有人能帮我修改代码,以便正确提取数据并且保存的文件不为空吗?(我已经评论了超链接地址,因为我是新用户,我只能发布一个超链接!)谢谢
答案1
首先,您发布的代码使用的是 Perl 解释器,这毫无意义。代码看起来像 PHP,所以标签是正确的。
其次,你为什么需要使用 wget?我推荐使用 curl:
http://php.net/manual/en/book.curl.php
如果您确实需要使用 wget,那么对于简单的 BASH 脚本来说这似乎是更好的选择。
否则,您需要发布更多信息。我不确定,但如果出现问题,wget 之类的工具应该会发出错误消息。