wget的替代方案出现“ERROR 403:Forbidden”的情况

13

我正在尝试使用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.
4个回答

30

按照以下方式设置自定义用户代理:

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

@sherrellbc 我猜这是服务器上某种“机器人阻止”插件,我认为这是个坏主意。顺便说一下,我昨晚注意到像这样的短用户代理不如完整、更完整的用户代理工作得好。不确定这个问题有多普遍,但老实说,服务器如此挑剔真是令人恼火。 - PJ Brunet
你可以使用任何用户代理,但是Web服务器上有一些过滤器会“阻止”爬取。 - Fiil

0

有过相同的问题。确保我打开了我的Mozilla浏览器,并从我的Linux虚拟机而非Windows操作系统复制/粘贴下载URL。我不是专家,但这解决了我的问题。


0

我在使用wget从Github(实际上是重定向到s3.amazonaws.com)下载文件时,遇到了"ERROR 403: Forbidden"的错误。但只有在使用以下命令时才会出现:

wget -N / --timestamping

这个程序试图下载一个远程文件 - 但仅当它比本地文件的时间戳更新时。

显然,AWS S3禁止了时间戳检查。 移除-N标志就解决了这个问题。

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


-2

也许你应该尝试用双引号将URL链接括起来,例如:

wget "your_url"

基本上,但不是访问问题,在这里 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接