从 wget 命令诊断 403 禁止错误

问题描述 投票:0回答:2

当我尝试以下代码时,出现 403 禁止错误,但我不知道为什么。

wget --random-wait --wait 1 --no-directories --user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" --no-parent --span-hosts --accept jpeg,jpg,bmp,gif,png --secure-protocol=auto referer=https://pixabay.com/images/search/ --recursive --level=2 -e robots=off --load-cookies cookies.txt --input-file=pixabay_background_urls.txt

返回:

--2021-09-01 18:12:06--  https://pixabay.com/photos/search/wallpaper/?cat=backgrounds&pagi=2
Connecting to pixabay.com (pixabay.com)|104.18.20.183|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2021-09-01 18:12:06 ERROR 403: Forbidden.

备注:

-输入文件的 url 'https://pixabay.com/photos/search/wallpaper/?cat=backgrounds&pagi=2 ' page3、page 4 等由换行符分隔

-我使用了长格式的标志,这样我就可以记住它们是什么。

-我使用了从名为“cookies.txt”的网站生成的 cookie 文件,并确保它是最新的。

-我使用了通过查看 Google DevTools 中的标题找到的引用“https://pixabay.com/images/search/”。

-我可以正常访问这些 URL,无需任何可见的验证码要求

-我注意到其中一个 cookie _cf_bm 有 Secure = TRUE-因此需要使用 https 发送。我不确定我是否这样做

实际上可能做不到,也许cloudflare是一个决定因素。但我想知道是否可以绕过,以及是否可以从该网站下载大量文件

任何解决方案、见解或下载大量图像文件的任何其他方式都将非常感激。我知道 pixabay 有一个 API,我可以将其用作最后的手段,但我认为它的速率非常有限。

cmd wget http-status-code-403
2个回答
0
投票

这些图像下载网站似乎检测到服务器正在查询它们,而不是普通浏览器上的真人。试图规避这一点可能会像试图用 SEO 技巧来愚弄谷歌一样徒劳,因为他们可能会陷入一场持续不断的战斗,试图阻止人们进行大规模下载。

我从一家试图这样做的公司辞职,该公司试图操纵谷歌图像中的图像冒充自己的图像。

403 通常是为登录失败而保留的,但如果用于拒绝对资源的非标准访问,则适用。

我认为这些图像下载网站应该为 HEAD ONLY https 请求返回 200 响应,以便可以检查其图像链接的有效性。这将保护他们的资源,同时允许适当的自动站点维护检查,包括检查外部链接。


0
投票

首先,您需要检查您的 Tired.com 然后您将检查该网站上的元素。转到网络,然后在“网络”选项卡中打开开发人员窗格时重新加载网站

重新加载完成后,单击域名(在本例中为tired.com),然后单击标题

“用户代理:”在我的例子中我看到

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36

复制 User-Agent 值,然后转到终端并输入

wget -U 'User-agent value here' -e robots=off -r -np --page-requisites --convert-links 'website url'.

这应该可以正常工作,希望有帮助🚀

© www.soinside.com 2019 - 2024. All rights reserved.