gpt4 book ai didi

perl - 为什么在使用 Mechanize 获取文件时会收到内部服务器错误?

转载 作者:行者123 更新时间:2023-12-04 16:19:07 24 4
gpt4 key购买 nike

我在使用 WWW::Mechanize 下载 mp4 文件时遇到问题。一个普通的浏览器,比如 Firefox,无论是否启用 Javascript,都可以毫无问题地获取文件。所以在我看来 Javascript,通常的嫌疑人,并没有在我的问题中发挥真正的作用。我还在我的脚本中添加了与 Firefox 在执行获取时发送到文件服务器相同的 header ,以便服务器可能将 Mechanize 视为普通浏览器,但问题仍然存在。 Win32::IE::Mechanize 也可以很好地完成这项工作,但为什么 Mechanize 不能呢?

有任何想法吗?提前致谢 :)

这是我的脚本:

use strict;
use warnings;
use WWW::Mechanize;


my $browser = WWW::Mechanize->new();
$browser->cookie_jar(HTTP::Cookies->new());
$browser->add_header('User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.11) Gecko/20100701 Firefox/3.5.11');
$browser->add_header('Accept' => 'text/xml,application/xml,application/xhtml+xml;q=0.9,*/*;q=0.8');
$browser->add_header('Accept-Language' => 'zh-cn,zh;q=0.5');
$browser->add_header('Accept-Encoding' => 'gzip,deflate');
$browser->add_header('Accept-Charset' => 'GB2312,utf-8;q=0.7,*;q=0.7');
$browser->add_header('Keep-Alive' => 300);
$browser->add_header('Connection' => 'keep-alive');

my $url = 'http://119.167.217.206:19765/ppvaplaybyopen?url=http://119.167.217.206/%d3%e9%c0%d6%b0%d9%b7%d6%b0%d9-100803-%d0%a1%d6%ed%bd%dc%c2%d7%b7%d6%d7%e9%d0%e3%c7%f2%bc%bc.mp4/segno=0%26&rid=A8F1F5DFEB1B11F1D90B40AD1BB75D69&filelength=21293994&blocksize=2097152&blocknum=11&blockmd5=E210862B3F92935D0883E00AA2A38F08@D793599727C6DA4ACDB1CBF2235004AC@D5E9C9245C9A1BB63BC5EDA862A32604@51B5FDF91356B2B4E943EF72648EB0AD@6F2400488B04EBF66A60336B795EA142@8E51B8DCF87A7A02B84A2CAA5FFCA3CF@89080D683268481694DBA6D1E22A2EFF@8F56225C76854A434385A09C319BF9C3@9AB0A3F199183F479F8887D1C3341B1B@845FE0D711086CC2D086546CD26B35C1@9D93A9BE1D2EDE216AA9EBF26BF414BE';

$browser->get($url);

我收到以下错误消息:
Error GETing http://119.167.217.206:19765/ppvaplaybyopen?url=http://119.167.217.206/%d3%e9%c0%d6%b0%d9%b7%d6%b0%d9-100803-%d0%a1%d6%ed%bd%dc%c2%d7%b7%d6%d7%e9%d
0%e3%c7%f2%bc%bc.mp4/segno=0%26&rid=A8F1F5DFEB1B11F1D90B40AD1BB75D69&filelength=21293994&blocksize=2097152&blocknum=11&blockmd5=E210862B3F92935D0883E00AA2A38F08
@D793599727C6DA4ACDB1CBF2235004AC@D5E9C9245C9A1BB63BC5EDA862A32604@51B5FDF91356B2B4E943EF72648EB0AD@6F2400488B04EBF66A60336B795EA142@8E51B8DCF87A7A02B84A2CAA5FF
CA3CF@89080D683268481694DBA6D1E22A2EFF@8F56225C76854A434385A09C319BF9C3@9AB0A3F199183F479F8887D1C3341B1B@845FE0D711086CC2D086546CD26B35C1@9D93A9BE1D2EDE216AA9EB
F26BF414BE: Internal Server Error at E:\pp2.pl line 17

最佳答案

当我转到相同的 URL 时,我得到相同的“内部服务器错误”。可能的原因:

  • 你没有正确设置referer。
  • 您有一些身份验证,您在浏览器中进行,或存储在 cookie 中的任何其他数据。

  • 通常,在其他浏览器中打开 URL,是检查此类内容的好方法。 “Live http headers”Firefox 扩展是检查此类内容的好方法。

    关于perl - 为什么在使用 Mechanize 获取文件时会收到内部服务器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3412111/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com