curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)
优采云 发布时间: 2022-04-08 02:04curl 抓取网页(和wget下载安装1、Ubuntu平台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下载
wget和curl包下载地址:Windows平台下的wget和curl工具包
在Windows平台下,curl下载解压后直接为curl.exe格式,复制到系统命令目录下的C:\Windows\System32。
Windows平台下,wget下载解压后,格式为wget-1.11.4-1-setup.exe,需要安装;安装完成后,在环境变量-系统变量-路径目录下添加其安装
curl 和 wget 抓取实例
抓取网页主要有两种方式:url URL 和代理代理。下面是一个爬取“百度”首页的例子。
1、 url URL方法爬取
(1)curl下载百度首页内容,保存在baidu_html文件中
curl baidu_html
(2)wget下载百度首页内容,保存在baidu_html文件中
wget 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可以判断服务器是否响应。也可以通过一段时间内下载获得的字节数来间接判断。命令格式如下:
curl -y 60 -Y 1 -m 60 -o baidu_html
注:-y表示测试网速的时间;-Y 表示-y期间下载的字节数(字节为单位);-m 表示允许请求连接的最长时间,如果超过连接会自动断开连接并放弃连接
2、代理代理捕获
代理下载是通过连接中间服务器间接下载url网页的过程,而不是url直接连接网站服务器下载
两位知名的自由球员网站:
(全球数十个国家免费代理,每日更新)
(通过设置端口类型、代理类型、国家名称过滤)
在网站中选择国内免费的代理服务器为例介绍代理代理爬取网页:
218.107.21.252:8080(ip为218.107.21.252;端口为8080,中间是 8080 冒号“:”隔开形成套接字)
(1)curl通过代理爬取百度首页
curl -x 218.107.21.252:8080 -o aaaaa(常用端口有80、8080、8086、8888、3128等,默认8< @0)
注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21< @k31@ >107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
(2)wget通过代理爬取百度首页
wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: