我要去 wget youtube 搜索页面,那里的 URL 很糟糕。这是searchkeyword
按上传日期排序搜索时的示例:
wget http://www.youtube.com/results?search_type=videos&search_query=searchkeyword&search_sort=video_date_uploaded&suggested_categories=26%2C27%2C22%2C28%2C24
这是搜索结果的第 2 页:
wget http://www.youtube.com/results?search_type=videos&search_query=searchkeyword&search_sort=video_date_uploaded&suggested_categories=26%2C27%2C22%2C28%2C24&page=2
wget 给我提供了两个页面的误导性页面。
答案1
将 URL 用单引号括起来应该可以解决问题。另外,您还需要为下载的文件命名(否则它将具有wget
从 URL 猜测的奇怪名称)。所以
wget 'http://www.youtube.com/results?search_type=videos&search_query=searchkeyword&search_sort=video_date_uploaded&suggested_categories=26%2C27%2C22%2C28%2C24' -O nice_name.html
根据 laebshade 的评论进行解释(感谢提醒我):URL 中的许多有趣的字符将由壳作为特殊命令或其他控制序列。从我的头顶上看,~! # ^ & * 对于 shell 来说都有其他含义(取决于您使用的 shell)。您可以使用\
它们一一转义,或引用整个内容。
答案2
不要用于wget
下载单个页面。它更适合诸如整个站点的递归下载之类的事情。尝试curl
一下。
另外,请确保在命令行上引用参数,这样就不会遇到诸如?
.
curl 'http://www.youtube.com/results?search_type=videos&search_query=searchkeyword&search_sort=video_date_uploaded&suggested_categories=26%2C27%2C22%2C28%2C24&page=2' \
> results.html
答案3
使用youtube-dl用于下载 YouTube 视频。这是一个史诗般的Python脚本。它需要Python。如果您有Ubuntu,请使用此命令安装:sudo apt-get install youtube-dl
否则您可以直接从网站下载:http://rg3.github.com/youtube-dl/