IT-Homer 专栏
成功是优点的发挥,失败是缺点的积累! 不为失败找理由,只为成功找
方法……
Linux 抓取网页方式(curl+wget)
分类: Linux Script 2012-06-02 23:38 1670人阅读评论(1) 收藏举报
Linux抓取网页,简单方法是直接通过 curl 或 wget 两种命令。
curl 和 wget 命令,目前已经支持Linux和Windows平台,后续将介绍。
curl 和 wget支持协议
curl 支持 http,https,ftp,ftps,scp,等网络协议,详见手册 man curl
wget支持 http,https,ftp网络协议,详见手册man wget
curl 和 wget下载安装
1、Ubuntu平台
wget 命令安装: sudo apt-get install wget (普通用户登录,需输入密码; root账户登录,无需输入密码)
curl 命令安装: sudo apt-get install curl (同 wget)
2、Windows平台
wget 下载地址:wget for Windows
curl 下载地址:curl Download
wget 和 curl 打包下载地址:Windows平台下的wget和curl工具包
Windows平台下,curl下载解压后,,拷贝到系统命令目录下 C:\Windows\System32 即可
Windows平台下,wget下载解压后,是wget--1-,需要安装;安装后,在环境变量- 系统变量
- Path 中添加其安装目录即可
curl 和 wget抓取实例
抓取网页,主要有url 网址和proxy代理两种方式,下面以抓取“百度”首页为例,分别介绍
1、 url 网址方式抓取
1
(1)curl下载百度首页内容,保存在baidu_html文件中
curl / -o baidu_html
(2)wget下载百度首页内容,保存在baidu_html文件中
wget / -O baidu_html2
有的时候,由于网速/数据丢包/服务器宕机/等原因,导致暂时无法成功下载网页
这时,可能就需要多次尝试发送连接,请求服务器的响应;如果多次仍无响应,则可以确认服务器出问题了
(1)curl多次尝试连接
curl --retry 10 --retry-delay 60 --retry-max-time 60 / -o baidu_html
注: --retry表示重试次数; --retry-delay表示两次重试之间的时间间隔(秒为单位); --retry-max-time表示
在此最大时间内只容许重试一次(一般与--retry-delay相同)
(2)wget多次尝试连接
wget -t 10 -w 60 -T 30 / -O baidu_html2
注:-t(--tries)表示重试次数; -w表示两次重试之间的时间间隔(秒为单位); -T表示连接超时时间,如果超
时则连接不成功,继续尝试下一次连接
附: curl 判断服务器是否响应,还可以通过一段时间内下载获取
Linux 抓取网页方式(curl+wget) 来自淘豆网www.taodocs.com转载请标明出处.