只下载源页面的前几个字节

Ram*_*esh 10 wget curl

我正在使用cURL命令下载网站的 HTML 源页面。问题是,我不想要页面中的大部分内容。我只需要源页面的前 100 行。有没有办法在前几行后停止下载页面?

目前,我有以下命令工作,但它似乎没有时间有效。

curl -r[0-1] "http://www.freebase.com/m/045c7b" > foo.txt
Run Code Online (Sandbox Code Playgroud)

我尝试将值从 更改1.5.05,但仍然下载了整个网页。

我正在查看执行上述命令的时间不到一秒钟。

编辑

从 的手册页中cURL,我看到“您还应该知道许多 HTTP/1.1 服务器没有启用此功能,因此当您尝试获取范围时,您将获取整个文档。 ”因此,如果服务器不支持范围查询,nix环境中是否还有其他命令可以帮助我完成我想要做的事情?

slm*_*slm 7

您可以使用head-s开关来curl下载页面的一部分。只需告诉head您想要多少行输出。

例子

$ curl -r[0-1] "http://www.freebase.com/m/045c7b" -s 2>&1 | head -10
Warning: Invalid character is found in given range. A specified range MUST 
Warning: have only digits in 'start'-'stop'. The server's response to this 
Warning: request is uncertain.


  <!DOCTYPE html PUBLIC "null" "null">
  <html class="no-js" dir="ltr" lang="en">
    <head>
      <meta charset="utf-8">
      <title>
Run Code Online (Sandbox Code Playgroud)

细节

  • -10head会返回10行,然后停止。如果您想要更多,请更改它以满足您的需求。
  • -s开关curl告诉它是无声的,所以它不会显示在下载进度条。