使用wget从Google学术搜索结果下载所有PDF文件

8
我想写一个简单的网络爬虫,或者仅使用wget从Google学术中下载PDF结果。这实际上是获取研究论文的很好的方法。我已经阅读了stackoverflow上的以下页面:使用wget爬取网站并限制总爬取链接数Web爬虫和wget的爬虫有何不同?从网站下载所有PDF文件如何使用wget从网站下载所有文件(但不是HTML)?,最后一篇可能是最有启发性的。我确实尝试过像这样建议的使用wget。我的Google学术搜索结果页面是这样的,但没有进行下载。考虑到我对网络爬虫的理解很少,我应该怎么做才能实现这个目标?我意识到编写爬虫可能非常复杂,可能是我不想承担的项目。如果可以使用wget,那将非常棒。
1个回答

11
wget -e robots=off -H --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" -r -l 1 -nd -A pdf http://scholar.google.com/scholar?q=filetype%3Apdf+liquid+films&btnG=&hl=en&as_sdt=0%2C23

需要注意以下几点:

  1. 在搜索查询中使用filetype:pdf
  2. 仅递归一级目录
  3. -A pdf 只接受pdf文件
  4. -H 跨主机访问
  5. -e robots=off 和 --user-agent 确保最佳结果。Google Scholar 拒绝空用户代理,PDF存储库可能会禁止机器人。

当然,这种方法的限制是它只能查到第一页的结果。你可以扩大递归深度,但这会导致运行时间过长。我建议使用类似于Beautiful Soup和wget子进程结合的方法,以便可以有策略地解析和遍历搜索结果。


很遗憾,当我运行这个命令时,我的终端窗口崩溃并关闭了。我没有运行Mozilla 5.0...它是Firefox 15..所以我应该相应地做一些更改吗?我将firefox 3.0.3更改为firefox 15,但没有任何效果。 - dearN
1
可能是行连续符(\)。已编辑以删除它们 - 请重试。用户代理可以是任何您喜欢的... - dongle
我收到了“ERROR 503:服务不可用”的错误。 - AlwaysLearning

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