curl 抓取网页(curl和wget抓取实例抓取网页(1)_html文件)

优采云 发布时间: 2021-12-18 13:11

  curl 抓取网页(curl和wget抓取实例抓取网页(1)_html文件)

  curl 和 wget 抓取示例

  爬取网页,主要有两种方式:url和proxy

  1、 url 网址抓取

  (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判断服务器是否有响应,也可以通过一段时间内下载的字节数间接判断。命令格式如下:

  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,中间用冒号“:”隔开,形成一个socket)

  (1)curl 通过代理爬取百度首页

  curl -x 218.107.21.252:8080 -o aaaaa(端口通常为80、8080、8086、8888、3128等,默认为80)

  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过218.107.21.252:8080 下载百度主页,最后218.107.21.252:8080 发送下载的百度homepage to curl 到本地(curl不是直接连接百度服务器下载首页,而是通过中介代理)

  (2)wget 通过代理获取百度主页

  wget通过代理下载,和curl不一样。需要先设置代理服务器的http_proxy=ip:port

  以ubuntu为例,在当前用户目录(cd~)下创建wget配置文件(.wgetrc),进入代理配置:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线