wget 的替代方案给出 'ERROR 403: Forbidden'

Posted

技术标签:

【中文标题】wget 的替代方案给出 \'ERROR 403: Forbidden\'【英文标题】:Alternatives for wget giving 'ERROR 403: Forbidden'wget 的替代方案给出 'ERROR 403: Forbidden' 【发布时间】:2016-08-29 12:59:43 【问题描述】:

我正在尝试使用 wget 从多篇 Pubmed 论文中获取文本,但似乎 NCBI 网站不允许这样做。有其他选择吗?

Bernardos-MacBook-Pro:pangenome_papers_pubmed_result bernardo$ wget -i ./url.txt
--2016-05-04 10:49:34--  http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4560400/
Resolving www.ncbi.nlm.nih.gov... 130.14.29.110, 2607:f220:41e:4290::110
Connecting to www.ncbi.nlm.nih.gov|130.14.29.110|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2016-05-04 10:49:34 ERROR 403: Forbidden.

--2016-05-04 10:49:34--  http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4547177/
Reusing existing connection to www.ncbi.nlm.nih.gov:80.
HTTP request sent, awaiting response... 403 Forbidden
2016-05-04 10:49:34 ERROR 403: Forbidden.

【问题讨论】:

【参考方案1】:

像这样设置自定义用户代理:

wget --user-agent="Mozilla" http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4560400/

【讨论】:

@sherrellbc 我认为它是服务器上的某种“bot blocker”插件,IMO 是个坏主意。仅供参考,我昨晚注意到像这样的短用户代理不能像完整的、更完整的用户代理那样工作。不确定这个问题有多普遍,但坦率地说,服务器如此挑剔很烦人。 你可以放任何你想要的用户代理,网络服务器上有一些过滤可以“防止”抓取【参考方案2】:

我在尝试使用 wget 从 Github 下载文件时收到“ERROR 403: Forbidden”(重定向到 s3.amazonaws.com实际上)。但它只发生在使用时:

wget -N / --timestamping

这会尝试下载远程文件 - 仅当它比文件的本地副本更新时。

显然,AWS S3 禁止了时间戳检查。 删除 -N 标志已解决。

请注意,您还可以通过使用-O / --output-document=FILE 或使用-P / --directory-prefix=PREFIX 下载到不同的目录(尚不包含该文件)来避免时间戳检查。

【讨论】:

以上是关于wget 的替代方案给出 'ERROR 403: Forbidden'的主要内容,如果未能解决你的问题,请参考以下文章

wget 403错误解决

apache给出403禁止下载.py文件

ERROR 403: SSL is required的解决方案

NEXUS npm install 给出 403 错误

关于RDS备份文件使用wget下载提示403 Forbidden的情况

当我使用谷歌你管 API 获取搜索结果时,它给出 403 错误