我正在使用 Ruby + OpenURI + Nokogiri 抓取一个网站。抓取一个页面,找到所有的a[href]
并且(如果它们在同一个域和正确的协议中)跟随它们再次抓取。
有时会有大型二进制文件的链接(例如 jpeg、exe),我不想抓取这些文件。
我尝试使用HTTP“Accept”标头为错误的 mime 类型获取错误或空响应,如下所示:
require 'open-uri'
page = open(url, 'Accept'=>'text/html,application/xhtml+xml,application/xml')
...但 OpenURI 仍会下载使用另一种 mime 类型发送的二进制文件。
除了在 url 中查看可能的文件类型的文件扩展名之外,如何防止下载(或检测冲突的响应类型)任意 URL?