curl 抓取网页

curl 抓取网页

curl 抓取网页(PHP爬虫实现方法直接采用PHPcurl来抓取数据socket方法)

网站优化优采云 发表了文章 • 0 个评论 • 55 次浏览 • 2022-02-27 13:01 • 来自相关话题

  curl 抓取网页(PHP爬虫实现方法直接采用PHPcurl来抓取数据socket方法)
  PHP爬虫总结
  PHP爬虫 网上的爬虫很多很多,五花八门,但是大家都不喜欢用PHP写爬虫。这可能是由于不稳定和组件库太少。不管怎样,PHP 还是很容易写的。 curl实现方式直接使用PHP curl来抓取数据。 socket方法采用最原创的socket方法。有一个https:hightmanpspider项目,非常完美。它也使用我使用腾讯云的主机。 curl方法利用爬取网页的步骤设置种子url,一般是网站的域名。通过这个首页一步步抓取种子url,分析这个页面,获取所有相关url,根据是否抓取外站策略判断。处理url判断是否是需要爬取的网页。如果是要爬取的网页,则处理存储。如果没有,请更新队列。 PHP爬虫推荐有多种:https:smartengphp-crawler https:smartengpspider 特点 轻量级、内核 简单易用 基于Redis的调度插件,支持分布式和断点抓取,易于扩展和定制,可以自定义调度插件-根据您的需要随时进入
  1.1K 查看全部

  curl 抓取网页(PHP爬虫实现方法直接采用PHPcurl来抓取数据socket方法)
  PHP爬虫总结
  PHP爬虫 网上的爬虫很多很多,五花八门,但是大家都不喜欢用PHP写爬虫。这可能是由于不稳定和组件库太少。不管怎样,PHP 还是很容易写的。 curl实现方式直接使用PHP curl来抓取数据。 socket方法采用最原创的socket方法。有一个https:hightmanpspider项目,非常完美。它也使用我使用腾讯云的主机。 curl方法利用爬取网页的步骤设置种子url,一般是网站的域名。通过这个首页一步步抓取种子url,分析这个页面,获取所有相关url,根据是否抓取外站策略判断。处理url判断是否是需要爬取的网页。如果是要爬取的网页,则处理存储。如果没有,请更新队列。 PHP爬虫推荐有多种:https:smartengphp-crawler https:smartengpspider 特点 轻量级、内核 简单易用 基于Redis的调度插件,支持分布式和断点抓取,易于扩展和定制,可以自定义调度插件-根据您的需要随时进入
  1.1K

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)

网站优化优采云 发表了文章 • 0 个评论 • 58 次浏览 • 2022-02-24 23:21 • 来自相关话题

  curl 抓取网页(和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),进入代理配置: 查看全部

  curl 抓取网页(和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),进入代理配置:

curl 抓取网页(PHPheader调试很有用的原因及解决办法(一))

网站优化优采云 发表了文章 • 0 个评论 • 38 次浏览 • 2022-02-24 03:19 • 来自相关话题

  curl 抓取网页(PHPheader调试很有用的原因及解决办法(一))
  [header_size] => 312
  [request_size] => 61
  [文件时间] => -1
  [ssl_verify_result] => 0
  [redirect_count] => 0
  [总时间] => 0.172
  [namelookup_time] => 0.016
  [连接时间] => 0.063
  [pretransfer_time] => 0.063
  [大小上传] => 0
  [size_download] => 14658[speed_download] => 85220
  [speed_upload] => 0
  [下载内容长度] => 14658
  [上传内容长度] => 0
  [starttransfer_time] => 0.125
  [重定向时间] => 0
  [certinfo] => 数组
  (
  )
  [redirect_url] =>
  )
  2、这些信息对于调试非常有用。例如,cURL在爬取时,由于网络等原因,爬取的数据可能不完整。这就是我们如何从获得的数据中计算文件大小的方法。 ,然后与 curl_getinfo() 得到的比较。如果大小相等,则确定下载正确,否则重复尝试。
  我们来看一个抓图的例子:
  代码如下:
  PHP
  header("Content-Type: image/png");
  //1、初始化
  $ch = curl_init();
  //2、设置选项,包括URL
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  curl_setopt($ch,1);
  //3、执行并获取内容
  $res = curl_exec($ch);
  //获取信息
  $info = curl_getinfo($ch);
  //4、释放资源
  curl_close($ch);
  file_put_contents("d:/aa.png",$res);
  $size = filesize("d:/aa.png");
  if ($size != $info['size_download']) {
  echo "下载的数据不完整,请重新下载";
  } 否则 {
  echo "下载数据完成";
  }
  3、使用 POST 方法在 cURL 中发送数据
  代码如下:
  PHP
  $ch = curl_init();
  $data = array('name'=>'kelly','age'=>27,'sex'=>1);
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  //设置为帖子
  curl_setopt($ch,CURLOPT_POST,1);
  //添加post变量
  curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
  $res = curl_exec($ch);
  curl_close($ch);
  回声 $res;
  你可以用这个方法模拟一条消息,也可以坐在浇水机器人上,思路是一样的
  4、使用 cURL 上传文件
  代码如下:
  '美女',"上传"=>"@a.zip");
  $ch = curl_init();
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  curl_setopt($ch,$data);
  $res = curl_exec($ch);
  curl_close($ch);
  回声 $res;
  注意:发送文件时,在文件名前加上@,并使用完整路径
  5、cURL 设置
  其实cURL有很多配置选项,这些选项是cURL的灵魂,通过setopt()来设置,下面总结了一些比较常见和重要的配置项,希望读者以后使用cURL。帮助:
  CURLOPT_AUTOREFERER:根据location:重定向时,自动在header中设置Referer:信息
  CURLOPT_COOKIESESSION:启用后,cURL 将紧密传递会话 cookie,而忽略其他 cookie
  CURLOPT_HEADER:将头信息作为数据流输出
  CURLOPT_INFILESIZE:设置上传文件的字节大小
  CURLOPT_MAXCONNECTS:允许的最大连接数
  CURLOPT_MAXREDIRS:指定 HTTP 重定向的最大数量
  CURLOPT_COOKIE:设置 HTTP 请求的“cookie:”部分的内容。多个 cookie 后跟一个分号和分号后的一个空格
  CURLOPT_POSTFIELDS:所有数据都使用HTTP协议中的“POST”操作发送文件,文件名前加@前缀并使用完整路径
  ......
  更多配置项请参考PHP手册
  cURL 很强大,它是一个通用库,不是 PHP 独有的。
  希望读者通过学习这篇博文中的几个经典 cURL 示例有所收获。
  总结
  如果你觉得编程之家网站的内容还不错,欢迎你把编程之家网站推荐给你的程序员朋友。 查看全部

  curl 抓取网页(PHPheader调试很有用的原因及解决办法(一))
  [header_size] => 312
  [request_size] => 61
  [文件时间] => -1
  [ssl_verify_result] => 0
  [redirect_count] => 0
  [总时间] => 0.172
  [namelookup_time] => 0.016
  [连接时间] => 0.063
  [pretransfer_time] => 0.063
  [大小上传] => 0
  [size_download] => 14658[speed_download] => 85220
  [speed_upload] => 0
  [下载内容长度] => 14658
  [上传内容长度] => 0
  [starttransfer_time] => 0.125
  [重定向时间] => 0
  [certinfo] => 数组
  (
  )
  [redirect_url] =>
  )
  2、这些信息对于调试非常有用。例如,cURL在爬取时,由于网络等原因,爬取的数据可能不完整。这就是我们如何从获得的数据中计算文件大小的方法。 ,然后与 curl_getinfo() 得到的比较。如果大小相等,则确定下载正确,否则重复尝试。
  我们来看一个抓图的例子:
  代码如下:
  PHP
  header("Content-Type: image/png");
  //1、初始化
  $ch = curl_init();
  //2、设置选项,包括URL
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  curl_setopt($ch,1);
  //3、执行并获取内容
  $res = curl_exec($ch);
  //获取信息
  $info = curl_getinfo($ch);
  //4、释放资源
  curl_close($ch);
  file_put_contents("d:/aa.png",$res);
  $size = filesize("d:/aa.png");
  if ($size != $info['size_download']) {
  echo "下载的数据不完整,请重新下载";
  } 否则 {
  echo "下载数据完成";
  }
  3、使用 POST 方法在 cURL 中发送数据
  代码如下:
  PHP
  $ch = curl_init();
  $data = array('name'=>'kelly','age'=>27,'sex'=>1);
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  //设置为帖子
  curl_setopt($ch,CURLOPT_POST,1);
  //添加post变量
  curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
  $res = curl_exec($ch);
  curl_close($ch);
  回声 $res;
  你可以用这个方法模拟一条消息,也可以坐在浇水机器人上,思路是一样的
  4、使用 cURL 上传文件
  代码如下:
  '美女',"上传"=>"@a.zip");
  $ch = curl_init();
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  curl_setopt($ch,$data);
  $res = curl_exec($ch);
  curl_close($ch);
  回声 $res;
  注意:发送文件时,在文件名前加上@,并使用完整路径
  5、cURL 设置
  其实cURL有很多配置选项,这些选项是cURL的灵魂,通过setopt()来设置,下面总结了一些比较常见和重要的配置项,希望读者以后使用cURL。帮助:
  CURLOPT_AUTOREFERER:根据location:重定向时,自动在header中设置Referer:信息
  CURLOPT_COOKIESESSION:启用后,cURL 将紧密传递会话 cookie,而忽略其他 cookie
  CURLOPT_HEADER:将头信息作为数据流输出
  CURLOPT_INFILESIZE:设置上传文件的字节大小
  CURLOPT_MAXCONNECTS:允许的最大连接数
  CURLOPT_MAXREDIRS:指定 HTTP 重定向的最大数量
  CURLOPT_COOKIE:设置 HTTP 请求的“cookie:”部分的内容。多个 cookie 后跟一个分号和分号后的一个空格
  CURLOPT_POSTFIELDS:所有数据都使用HTTP协议中的“POST”操作发送文件,文件名前加@前缀并使用完整路径
  ......
  更多配置项请参考PHP手册
  cURL 很强大,它是一个通用库,不是 PHP 独有的。
  希望读者通过学习这篇博文中的几个经典 cURL 示例有所收获。
  总结
  如果你觉得编程之家网站的内容还不错,欢迎你把编程之家网站推荐给你的程序员朋友。

curl 抓取网页(curl和wget下载安装1、Ubuntu平台wget命令安装:sudo)

网站优化优采云 发表了文章 • 0 个评论 • 59 次浏览 • 2022-02-22 04:11 • 来自相关话题

  curl 抓取网页(curl和wget下载安装1、Ubuntu平台wget命令安装:sudo)
  curl和wget下载安装
  1、Ubuntu 平台
  wget命令安装:sudo apt-get install wget(普通用户登录,需要输入密码;root账户登录,无需输入密码)
  curl命令安装:sudo apt-get install curl(同wget)
  2、Windows 平台
  wget下载地址:
  curl下载地址:
  wget和curl包下载地址:
  在Windows平台下,curl下载解压后直接为curl.exe格式,复制到系统命令目录下的C:WindowsSystem32。
  Windows平台下,wget下载解压后为wget-1.11.4-1-setup.exe格式,需要安装;安装完成后,在环境变量-系统变量-路径目录下添加其安装
  curl 和 wget 抓取实例
  抓取网页主要有两种方式:url URL 和代理代理。下面是一个爬取“百度”首页的例子。
  1、 url 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,中间是 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),进入代理配置: 查看全部

  curl 抓取网页(curl和wget下载安装1、Ubuntu平台wget命令安装:sudo)
  curl和wget下载安装
  1、Ubuntu 平台
  wget命令安装:sudo apt-get install wget(普通用户登录,需要输入密码;root账户登录,无需输入密码)
  curl命令安装:sudo apt-get install curl(同wget)
  2、Windows 平台
  wget下载地址:
  curl下载地址:
  wget和curl包下载地址:
  在Windows平台下,curl下载解压后直接为curl.exe格式,复制到系统命令目录下的C:WindowsSystem32。
  Windows平台下,wget下载解压后为wget-1.11.4-1-setup.exe格式,需要安装;安装完成后,在环境变量-系统变量-路径目录下添加其安装
  curl 和 wget 抓取实例
  抓取网页主要有两种方式:url URL 和代理代理。下面是一个爬取“百度”首页的例子。
  1、 url 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,中间是 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),进入代理配置:

curl 抓取网页(curl抓取网页视频的教程详细教程三个必须要先设置的参数)

网站优化优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2022-02-17 12:06 • 来自相关话题

  curl 抓取网页(curl抓取网页视频的教程详细教程三个必须要先设置的参数)
  curl抓取网页视频的教程详细教程三个必须要先设置的参数,解读后其中,下载地址是array(源主机,目标地址,协议)这三个参数是需要确定的,关键是协议也就是airtime(机器可以无限次工作时间)也就是服务器可以持续开机的时间,我们必须设置2秒的array,如果设置3秒,那就等于异步下载了,不能存储实际抓取速度-根据官方说法,10mb每秒也是可以抓取一个视频的!因为手机端抓取我就设置了300mb每秒了!其实android和ios都可以抓取流媒体文件的!流媒体文件的格式可以是http://,也可以是一个图片文件,或者其他通过rtmp协议(即传输协议)传输的内容!那么我们应该抓取什么样的格式呢?1。
  网站的视频源只有文字并且是文件的格式,不带图片,也没有协议代码或者代码解析2。网站的视频一般为http://加密视频要解密,至少要解密字幕,才能正常的接收你下载到本地的视频,比如字幕文件!google搜索"如何下载视频",search和点击一个国内的网站没有反应,那么我们该如何抓取你想要下载的视频的呢?而抓取哪些视频呢?这个就要靠一个官方配套的地址,点击下载即可,注意手机平板都可以抓取的!顺带吐槽一下太多网站不支持一键下载,我都抓取完,依然要请大佬们收费,但是实际上官方自己并不会做这种限制,当然他也不可能做,但是大家的需求而已!。 查看全部

  curl 抓取网页(curl抓取网页视频的教程详细教程三个必须要先设置的参数)
  curl抓取网页视频的教程详细教程三个必须要先设置的参数,解读后其中,下载地址是array(源主机,目标地址,协议)这三个参数是需要确定的,关键是协议也就是airtime(机器可以无限次工作时间)也就是服务器可以持续开机的时间,我们必须设置2秒的array,如果设置3秒,那就等于异步下载了,不能存储实际抓取速度-根据官方说法,10mb每秒也是可以抓取一个视频的!因为手机端抓取我就设置了300mb每秒了!其实android和ios都可以抓取流媒体文件的!流媒体文件的格式可以是http://,也可以是一个图片文件,或者其他通过rtmp协议(即传输协议)传输的内容!那么我们应该抓取什么样的格式呢?1。
  网站的视频源只有文字并且是文件的格式,不带图片,也没有协议代码或者代码解析2。网站的视频一般为http://加密视频要解密,至少要解密字幕,才能正常的接收你下载到本地的视频,比如字幕文件!google搜索"如何下载视频",search和点击一个国内的网站没有反应,那么我们该如何抓取你想要下载的视频的呢?而抓取哪些视频呢?这个就要靠一个官方配套的地址,点击下载即可,注意手机平板都可以抓取的!顺带吐槽一下太多网站不支持一键下载,我都抓取完,依然要请大佬们收费,但是实际上官方自己并不会做这种限制,当然他也不可能做,但是大家的需求而已!。

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)

网站优化优采云 发表了文章 • 0 个评论 • 58 次浏览 • 2022-02-17 04:09 • 来自相关话题

  curl 抓取网页(和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 -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,中间是 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),进入代理配置: 查看全部

  curl 抓取网页(和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 -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,中间是 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),进入代理配置:

curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别 )

网站优化优采云 发表了文章 • 0 个评论 • 62 次浏览 • 2022-02-16 19:17 • 来自相关话题

  curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别
)
  分块传输编码
  分块编码更改消息正文,以便消息正文以块的形式发送。每个块都有自己的大小指示符,紧跟在所有块之后的收录实体头字段的可选尾部。这允许发送者动态生成内容并携带有用的信息,接收者可以使用这些信息来确定是否收到了消息。
  4、curl 在指定要下载的链接时可以支持 URL 序列或集合,而 wget 不能。
  5、wget 支持递归下载,而 curl 不支持。
  二、网站抓取实例
  抓取网页有两种方式:url URL和proxy代理。以百度首页的抓取为例。
  1、url URL方法爬取
  (1)curl下载百度首页内容,保存在baidu_html文件中
  curl http://www.baidu.com/ -o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget http://www.baidu.com/ -O baidu_html
  有时,由于网速/数据包丢失/服务器宕机等原因,网页暂时无法成功下载。这时候,你可能需要尝试多次发送连接来请求服务器的响应;如果多次还是没有响应,那么就可以确认服务器有问题了。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time 60 http://www.baidu.com/ -o baidu_html
  注意:--retry 表示重试次数;--retry-delay 表示两次重试之间的时间间隔(单位:秒);--retry-max-time 表示超时时间。
  curl -y 60 -Y 1 -m 60 http://www.baidu.com -o baidu_html
  注:-y表示测试网速的时间;-Y 表示停止传输速度的限制(单位:字节/秒);-m 表示最大连接时间,超过连接会自动断开连接并放弃连接
  (2)wget 尝试连接多次
  wget -t 10 -w 60 -T 30 http://www.baidu.com/ -O baidu_html
  注意:-t(-tries)表示重试次数;-w 表示两次重试的时间间隔(单位:秒);-T 表示链接超时时间。
  2、代理代理捕获
  代理下载是通过连接中间服务器间接下载url网页的过程,而不是直接连接网站服务器下载的url。这里代理使用 127.0.0.1:8080 进行测试。
  (1)curl通过代理爬取百度首页
  curl -x 127.0.0.1:8080 -o baidu_html http://www.baidu.com
  注:-x表示代理服务器(ip:port),常用端口有80、8080、8086、8888、3128等,默认为80,即curl先连接代理服务器127.< @0.0.1:8080,然后通过它下载百度主页,最后将下载的百度主页转curl到本地127.0.0.@ >1:8080
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:
  http_proxy=127.0.0.1:8080
  然后输入wget命令爬取网页:
  wget http://www.baidu.com -O baidu_html 查看全部

  curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别
)
  分块传输编码
  分块编码更改消息正文,以便消息正文以块的形式发送。每个块都有自己的大小指示符,紧跟在所有块之后的收录实体头字段的可选尾部。这允许发送者动态生成内容并携带有用的信息,接收者可以使用这些信息来确定是否收到了消息。
  4、curl 在指定要下载的链接时可以支持 URL 序列或集合,而 wget 不能。
  5、wget 支持递归下载,而 curl 不支持。
  二、网站抓取实例
  抓取网页有两种方式:url URL和proxy代理。以百度首页的抓取为例。
  1、url URL方法爬取
  (1)curl下载百度首页内容,保存在baidu_html文件中
  curl http://www.baidu.com/ -o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget http://www.baidu.com/ -O baidu_html
  有时,由于网速/数据包丢失/服务器宕机等原因,网页暂时无法成功下载。这时候,你可能需要尝试多次发送连接来请求服务器的响应;如果多次还是没有响应,那么就可以确认服务器有问题了。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time 60 http://www.baidu.com/ -o baidu_html
  注意:--retry 表示重试次数;--retry-delay 表示两次重试之间的时间间隔(单位:秒);--retry-max-time 表示超时时间。
  curl -y 60 -Y 1 -m 60 http://www.baidu.com -o baidu_html
  注:-y表示测试网速的时间;-Y 表示停止传输速度的限制(单位:字节/秒);-m 表示最大连接时间,超过连接会自动断开连接并放弃连接
  (2)wget 尝试连接多次
  wget -t 10 -w 60 -T 30 http://www.baidu.com/ -O baidu_html
  注意:-t(-tries)表示重试次数;-w 表示两次重试的时间间隔(单位:秒);-T 表示链接超时时间。
  2、代理代理捕获
  代理下载是通过连接中间服务器间接下载url网页的过程,而不是直接连接网站服务器下载的url。这里代理使用 127.0.0.1:8080 进行测试。
  (1)curl通过代理爬取百度首页
  curl -x 127.0.0.1:8080 -o baidu_html http://www.baidu.com
  注:-x表示代理服务器(ip:port),常用端口有80、8080、8086、8888、3128等,默认为80,即curl先连接代理服务器127.< @0.0.1:8080,然后通过它下载百度主页,最后将下载的百度主页转curl到本地127.0.0.@ >1:8080
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:
  http_proxy=127.0.0.1:8080
  然后输入wget命令爬取网页:
  wget http://www.baidu.com -O baidu_html

curl 抓取网页( hebedichPHP利用Curl实现并发多线程下载文件以上就是)

网站优化优采云 发表了文章 • 0 个评论 • 70 次浏览 • 2022-02-15 10:21 • 来自相关话题

  curl 抓取网页(
hebedichPHP利用Curl实现并发多线程下载文件以上就是)
  PHP结合curl实现多线程爬取
  更新时间:2015-07-09 11:09:13 发布者:hebedich
  PHP可以使用Curl来完成各种文件传输操作,比如模拟浏览器发送GET、POST请求等。但是由于PHP语言本身不支持多线程,开发爬虫程序的效率不高,所以经常需要使用 Curl Multi Functions。实现并发多线程访问多个url地址实现并发多线程抓取网页或下载文件的功能
  PHP结合curl实现多线程爬取
  让我们再看几个例子
  (1)下面的代码是爬取多个URL,然后将爬取到的URL的页面代码写入到指定文件中
  $urls = array(
'https://www.jb51.net/',
'http://www.google.com/',
'http://www.example.com/'
); // 设置要抓取的页面URL
$save_to='/test.txt'; // 把抓取的代码写入该文件
$st = fopen($save_to,"a");
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i], CURLOPT_FILE,$st); // 将爬取的代码写入文件
curl_multi_add_handle ($mh,$conn[$i]);
} // 初始化
do {
curl_multi_exec($mh,$active);
} while ($active); // 执行
foreach ($urls as $i => $url) {
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
} // 结束清理
curl_multi_close($mh);
fclose($st);
  (2)下面的代码和上面类似,只不过这个地方是先把获取到的代码放到一个变量中,然后再将获取到的内容写入到指定的文件中
  $urls = array(
'https://www.jb51.net/',
'http://www.google.com/',
'http://www.example.com/'
);
$save_to='/test.txt'; // 把抓取的代码写入该文件
$st = fopen($save_to,"a");
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,true); // 不将爬取代码写到浏览器,而是转化为字符串
curl_multi_add_handle ($mh,$conn[$i]);
}
do {
curl_multi_exec($mh,$active);
} while ($active);
foreach ($urls as $i => $url) {
$data = curl_multi_getcontent($conn[$i]); // 获得爬取的代码字符串
fwrite($st,$data); // 将字符串写入文件
} // 获得数据变量,并写入文件
foreach ($urls as $i => $url) {
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
}
curl_multi_close($mh);
fclose($st);
  (3)以下代码实现使用PHP的Curl Functions实现并发多线程下载文件
  $urls=array(
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip'
);
$save_to='./home/';
$mh=curl_multi_init();
foreach($urls as $i=>$url){
$g=$save_to.basename($url);
if(!is_file($g)){
$conn[$i]=curl_init($url);
$fp[$i]=fopen($g,"w");
curl_setopt($conn[$i],CURLOPT_USERAGENT,"Mozilla/4.0(compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i],CURLOPT_FILE,$fp[$i]);
curl_setopt($conn[$i],CURLOPT_HEADER ,0);
curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,60);
curl_multi_add_handle($mh,$conn[$i]);
}
}
do{
$n=curl_multi_exec($mh,$active);
}while($active);
foreach($urls as $i=>$url){
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
fclose($fp[$i]);
}
curl_multi_close($mh);$urls=array(
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip'
);
$save_to='./home/';
$mh=curl_multi_init();
foreach($urls as $i=>$url){
$g=$save_to.basename($url);
if(!is_file($g)){
$conn[$i]=curl_init($url);
$fp[$i]=fopen($g,"w");
curl_setopt($conn[$i],CURLOPT_USERAGENT,"Mozilla/4.0(compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i],CURLOPT_FILE,$fp[$i]);
curl_setopt($conn[$i],CURLOPT_HEADER ,0);
curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,60);
curl_multi_add_handle($mh,$conn[$i]);
}
}
do{
$n=curl_multi_exec($mh,$active);
}while($active);
foreach($urls as $i=>$url){
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
fclose($fp[$i]);
}
curl_multi_close($mh);
  以上就是本文的全部内容,希望大家喜欢。 查看全部

  curl 抓取网页(
hebedichPHP利用Curl实现并发多线程下载文件以上就是)
  PHP结合curl实现多线程爬取
  更新时间:2015-07-09 11:09:13 发布者:hebedich
  PHP可以使用Curl来完成各种文件传输操作,比如模拟浏览器发送GET、POST请求等。但是由于PHP语言本身不支持多线程,开发爬虫程序的效率不高,所以经常需要使用 Curl Multi Functions。实现并发多线程访问多个url地址实现并发多线程抓取网页或下载文件的功能
  PHP结合curl实现多线程爬取
  让我们再看几个例子
  (1)下面的代码是爬取多个URL,然后将爬取到的URL的页面代码写入到指定文件中
  $urls = array(
'https://www.jb51.net/',
'http://www.google.com/',
'http://www.example.com/'
); // 设置要抓取的页面URL
$save_to='/test.txt'; // 把抓取的代码写入该文件
$st = fopen($save_to,"a");
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i], CURLOPT_FILE,$st); // 将爬取的代码写入文件
curl_multi_add_handle ($mh,$conn[$i]);
} // 初始化
do {
curl_multi_exec($mh,$active);
} while ($active); // 执行
foreach ($urls as $i => $url) {
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
} // 结束清理
curl_multi_close($mh);
fclose($st);
  (2)下面的代码和上面类似,只不过这个地方是先把获取到的代码放到一个变量中,然后再将获取到的内容写入到指定的文件中
  $urls = array(
'https://www.jb51.net/',
'http://www.google.com/',
'http://www.example.com/'
);
$save_to='/test.txt'; // 把抓取的代码写入该文件
$st = fopen($save_to,"a");
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,true); // 不将爬取代码写到浏览器,而是转化为字符串
curl_multi_add_handle ($mh,$conn[$i]);
}
do {
curl_multi_exec($mh,$active);
} while ($active);
foreach ($urls as $i => $url) {
$data = curl_multi_getcontent($conn[$i]); // 获得爬取的代码字符串
fwrite($st,$data); // 将字符串写入文件
} // 获得数据变量,并写入文件
foreach ($urls as $i => $url) {
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
}
curl_multi_close($mh);
fclose($st);
  (3)以下代码实现使用PHP的Curl Functions实现并发多线程下载文件
  $urls=array(
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip'
);
$save_to='./home/';
$mh=curl_multi_init();
foreach($urls as $i=>$url){
$g=$save_to.basename($url);
if(!is_file($g)){
$conn[$i]=curl_init($url);
$fp[$i]=fopen($g,"w");
curl_setopt($conn[$i],CURLOPT_USERAGENT,"Mozilla/4.0(compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i],CURLOPT_FILE,$fp[$i]);
curl_setopt($conn[$i],CURLOPT_HEADER ,0);
curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,60);
curl_multi_add_handle($mh,$conn[$i]);
}
}
do{
$n=curl_multi_exec($mh,$active);
}while($active);
foreach($urls as $i=>$url){
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
fclose($fp[$i]);
}
curl_multi_close($mh);$urls=array(
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip'
);
$save_to='./home/';
$mh=curl_multi_init();
foreach($urls as $i=>$url){
$g=$save_to.basename($url);
if(!is_file($g)){
$conn[$i]=curl_init($url);
$fp[$i]=fopen($g,"w");
curl_setopt($conn[$i],CURLOPT_USERAGENT,"Mozilla/4.0(compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i],CURLOPT_FILE,$fp[$i]);
curl_setopt($conn[$i],CURLOPT_HEADER ,0);
curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,60);
curl_multi_add_handle($mh,$conn[$i]);
}
}
do{
$n=curl_multi_exec($mh,$active);
}while($active);
foreach($urls as $i=>$url){
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
fclose($fp[$i]);
}
curl_multi_close($mh);
  以上就是本文的全部内容,希望大家喜欢。

curl 抓取网页(使用php的cURL库可以简单和有效地去抓网页。)

网站优化优采云 发表了文章 • 0 个评论 • 62 次浏览 • 2022-02-14 10:15 • 来自相关话题

  curl 抓取网页(使用php的cURL库可以简单和有效地去抓网页。)
  使用php的cURL库可以轻松高效的抓取网页。你只需要运行一个脚本,然后分析你爬取的网页,然后你就可以通过编程方式获取你想要的数据。无论您是想从链接中获取部分数据,还是获取 XML 文件并将其导入数据库,甚至只是获取网页内容,cURL 都是一个强大的 PHP 库。本文主要介绍如何使用这个 PHP 库。
  启用 cURL 设置
  首先,我们必须确定我们的 PHP 是否启用了这个库。您可以使用 php_info() 函数获取此信息。
  ﹤?php
phpinfo();
?﹥
  如果您可以在网页上看到以下输出,则说明 cURL 库已启用。
  如果你看到它,那么你需要设置你的 PHP 并启用这个库。如果你是windows平台下,很简单,你需要改变你的php.ini文件的设置,找到php_curl.dll,取消之前的分号注释。如下:
  //取消下在的注释
extension=php_curl.dll
  如果你在linux下,那么你需要重新编译你的PHP。编辑时需要打开编译参数——在configure命令中添加“--with-curl”参数。
  一个小例子
  如果一切就绪,这是一个小程序:
  ﹤?php
  // 初始化一个 cURL 对象
  $curl = curl_init();
  // 设置需要抓取的网址
  curl_setopt($curl, CURLOPT_URL, '');
  // 设置标题
  curl_setopt($curl, CURLOPT_HEADER, 1);
  // 设置 cURL 参数,是否将结果保存为字符串或输出到屏幕。
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  // 运行cURL,请求网页
  $data = curl_exec($curl);
  // 关闭 URL 请求
  curl_close($curl);
  //显示获取到的数据
  var_dump($data);
  如何发布数据
  上面是爬取网页的代码,下面是POST数据到网页。假设我们有一个处理表单的 URL,该表单接受两个表单字段,一个用于电话号码,一个用于文本消息的文本。
  ﹤?php
$phoneNumber = '13912345678';
$message = 'This message was generated by curl and php';
$curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' .
   urlencode($message) . '&SUBMIT=Send';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);
?﹥
  从上面的程序我们可以看出,使用CURLOPT_POST来设置HTTP协议的POST方法而不是GET方法,然后用CURLOPT_POSTFIELDS设置POST数据。
  关于代理服务器
  以下是如何使用代理服务器的示例。请注意突出显示的代码,代码很简单,我不需要多说。
  ﹤?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$data = curl_exec();
curl_close($ch);
?﹥
  关于 SSL 和 Cookie 查看全部

  curl 抓取网页(使用php的cURL库可以简单和有效地去抓网页。)
  使用php的cURL库可以轻松高效的抓取网页。你只需要运行一个脚本,然后分析你爬取的网页,然后你就可以通过编程方式获取你想要的数据。无论您是想从链接中获取部分数据,还是获取 XML 文件并将其导入数据库,甚至只是获取网页内容,cURL 都是一个强大的 PHP 库。本文主要介绍如何使用这个 PHP 库。
  启用 cURL 设置
  首先,我们必须确定我们的 PHP 是否启用了这个库。您可以使用 php_info() 函数获取此信息。
  ﹤?php
phpinfo();
?﹥
  如果您可以在网页上看到以下输出,则说明 cURL 库已启用。
  如果你看到它,那么你需要设置你的 PHP 并启用这个库。如果你是windows平台下,很简单,你需要改变你的php.ini文件的设置,找到php_curl.dll,取消之前的分号注释。如下:
  //取消下在的注释
extension=php_curl.dll
  如果你在linux下,那么你需要重新编译你的PHP。编辑时需要打开编译参数——在configure命令中添加“--with-curl”参数。
  一个小例子
  如果一切就绪,这是一个小程序:
  ﹤?php
  // 初始化一个 cURL 对象
  $curl = curl_init();
  // 设置需要抓取的网址
  curl_setopt($curl, CURLOPT_URL, '');
  // 设置标题
  curl_setopt($curl, CURLOPT_HEADER, 1);
  // 设置 cURL 参数,是否将结果保存为字符串或输出到屏幕。
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  // 运行cURL,请求网页
  $data = curl_exec($curl);
  // 关闭 URL 请求
  curl_close($curl);
  //显示获取到的数据
  var_dump($data);
  如何发布数据
  上面是爬取网页的代码,下面是POST数据到网页。假设我们有一个处理表单的 URL,该表单接受两个表单字段,一个用于电话号码,一个用于文本消息的文本。
  ﹤?php
$phoneNumber = '13912345678';
$message = 'This message was generated by curl and php';
$curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' .
   urlencode($message) . '&SUBMIT=Send';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);
?﹥
  从上面的程序我们可以看出,使用CURLOPT_POST来设置HTTP协议的POST方法而不是GET方法,然后用CURLOPT_POSTFIELDS设置POST数据。
  关于代理服务器
  以下是如何使用代理服务器的示例。请注意突出显示的代码,代码很简单,我不需要多说。
  ﹤?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$data = curl_exec();
curl_close($ch);
?﹥
  关于 SSL 和 Cookie

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)

网站优化优采云 发表了文章 • 0 个评论 • 60 次浏览 • 2022-02-13 09:27 • 来自相关话题

  curl 抓取网页(和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),进入代理配置: 查看全部

  curl 抓取网页(和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),进入代理配置:

curl 抓取网页( curl远不止前面所说的那些功能,你知道几个?)

网站优化优采云 发表了文章 • 0 个评论 • 43 次浏览 • 2022-02-13 09:23 • 来自相关话题

  curl 抓取网页(
curl远不止前面所说的那些功能,你知道几个?)
  使用说明
  curl命令是一个功能强大的网络工具,可以通过http、ftp等方式下载和上传文件。其实curl远不止上面提到的功能。您可以通过 man curl 阅读手册页以获取更多信息。 wget 是一个类似的工具。
  curl 命令是使用 libcurl 库实现的。 libcurl 库通常在 C 程序中用于处理 HTTP 请求。 curlpp 是 libcurl 的 C++ 包。这些东西可以用在web抓取、网络监控等开发中,curl命令可以帮助解决开发过程中遇到的问题。
  常用参数
  curl命令的参数很多,这里只列出我用过的,尤其是shell脚本中的。
  -A:请随意指定您自己为本次访问声明的浏览器信息
  -b/--cookie cookie 字符串或文件读取位置,使用 option 将最后一个 cookie 信息附加到 http 请求中。
  -c/--cookie-jar 操作完成后将cookies写入该文件
  -C/--continue-在断点处继续
  -d/--data HTTP POST方法传输数据
  -D/--dump-header 将头信息写入该文件
  -F/--form 模拟http表单提交数据
  -v/--verbose 小写的v参数用于打印更多信息,包括发送的请求信息,在调试脚本时特别有用。
  -m/--max-time 指定处理的最大持续时间
  -H/--header 指定请求头参数
  -s/--slent reduce输出信息,如进度
  --connect-timeout 指定尝试连接的最长时间
  -x/--代理
  指定代理服务器地址和端口,默认端口为1080
  -T/--upload-file 指定上传文件路径
  -o/--output 指定输出文件名
  --retry 指定重试次数
  -e/--referer 指定引用地址
  -I/--head 只返回header信息,使用HEAD请求
  -u/--user 设置服务器用户和密码
  -O:根据服务器上的文件名,会自动在本地存在
  -r/--range 从 HTTP/1.1 或 FTP 服务器检索字节范围
  -T/--upload-file 上传文件
  使用示例
  1、抓取页面内容到文件中
  [root@xi mytest]# curl -o home.html -- 将百度首页的内容抓取到home.html中
  [root@xi mytest]#curl -o #2_#1.jpg~{A,B}/[001-201].JPG
  因为A/B下的文件名都是001、002...、201,所以下载的文件同名,所以自定义下载的文件名变成这样: 原文:A/00< @1.JPG ---> 下载后:001-A.JPG 原文:B/001.JPG ---> 下载后:001-B.JPG
  2、使用-O(大写),后面的url必须特定于某个文件,否则不会被抓到。你也可以使用正则表达式来抓取东西
  [root@xi mytest]# curl -O
  结果如下:
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 1575 100 1575 0 0 14940 0 --:--:-- --:--:-- --:--:-- 1538k
  在当前执行目录中会生成一张bdlogo.gif的图片。
  [root@xi mytest]# curl -O[1-10].JPG --下载屏幕1.jpg~screen10.jpg
  3、模拟表单信息、模拟登录、保存cookie信息
  [root@xi mytest]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=******
  4、模拟表单信息、模拟登录、保存表头信息
  [root@xi mytest]# curl -D ./cookie_D.txt -F log=aaaa -F pwd=******
  由
  生成的cookie
  -c(小写)与-D中的cookie不同。
  5、使用cookie文件
  [root@xi mytest]# curl -b ./cookie_c.txt
  6、从断点恢复,-C(大写)
  [root@xi mytest]# curl -C -O
  7、发送数据,最好使用登录页面测试,因为你传值后,curl会抓取数据回来,可以查看是否传值成功
  [root@xi mytest]# curl -d log=aaaa
  8、显示爬取错误,下面的例子清楚的显示出来。
  [root@xi mytest]# curl -f
  curl:(22)请求的URL返回错误:404
  [root@xi mytest]# curl
  404,未找到
  9。伪造源地址,有的网站会判断并请求源地址,防止盗链。
  [root@xi mytest]# curl -e:///wp-login.php
  10、当我们经常用curl做别人的事情的时候,人家会屏蔽你的IP,这个时候我们可以使用代理
  [root@xi mytest]# curl -x 24.10.28.84:32779 -o home.html
  11,对于较大的东西,我们可以分段下载
  [root@xi mytest]# curl -r 0-100 -o img.part1
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 101 100 101 0 0 105 0 --:--:-- --:--:-- --:--:-- 0
  [root@xi mytest]# curl -r 100-200 -o img.part2
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 101 100 101 0 0 57 0 0:00:01 0:00:01 --:--:-- 0
  [root@xi mytest]# curl -r 200- -o img.part3
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 104k 100 104k 0 0 52793 0 0:00:02 0:00:02 --:--:-- 88961
  [root@xi mytest]# ls |grep part | xargs du -sh
  4.0K one.part1
  112K 三.part3
  4.0K two.part2
  使用的时候,cat一下就可以了,cat img.part* >img.jpg
  12,不会显示下载进度信息
  [root@xi mytest]# curl -s -o aaa.jpg
  13、显示下载进度条
  [root@xi mytest]# curl -0(使用http1.0协议的请求)
  ############################################## # ######################### 100.0%
  14、通过ftp下载文件
  [xifj@Xi ~]$ curl -u 用户名:密码 -O
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  101 1934 101 1934 0 0 3184 0 --:--:-- --:--:-- --:--:-- 7136
  [xifj@Xi ~]$ curl -u 用户名:密码 -O
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  101 1934 101 1934 0 0 3184 0 --:--:-- --:--:-- --:--:-- 7136
  或者使用下面的方法
  [xifj@Xi ~]$ curl -O ftp://username:password@ip:port/demo/curtain/bbstudy_files/style.css
  [xifj@Xi ~]$ curl -O ftp://username:password@ip:port/demo/curtain/bbstudy_files/style.css
  15、通过ftp上传
  [xifj@Xi ~]$ curl -T test.sql ftp://username:password@ip:port/demo/curtain/bbstudy_files/
  [xifj@Xi ~]$ curl -T test.sql ftp://username:password@ip:port/demo/curtain/bbstudy_files/
  15、模拟浏览器头部
  [xifj@Xi ~]$ curl -A "Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.0)" -x 12< @3.45.67.89:1080 -o page.html -D cookie0001.txt
  16,PUT,GET,POST
  比如curl -T localfile~zz/abc.cgi,此时使用的协议是HTTP PUT方式
  刚才说到PUT,我自然会想到其他几种方法——GET和POST。 查看全部

  curl 抓取网页(
curl远不止前面所说的那些功能,你知道几个?)
  使用说明
  curl命令是一个功能强大的网络工具,可以通过http、ftp等方式下载和上传文件。其实curl远不止上面提到的功能。您可以通过 man curl 阅读手册页以获取更多信息。 wget 是一个类似的工具。
  curl 命令是使用 libcurl 库实现的。 libcurl 库通常在 C 程序中用于处理 HTTP 请求。 curlpp 是 libcurl 的 C++ 包。这些东西可以用在web抓取、网络监控等开发中,curl命令可以帮助解决开发过程中遇到的问题。
  常用参数
  curl命令的参数很多,这里只列出我用过的,尤其是shell脚本中的。
  -A:请随意指定您自己为本次访问声明的浏览器信息
  -b/--cookie cookie 字符串或文件读取位置,使用 option 将最后一个 cookie 信息附加到 http 请求中。
  -c/--cookie-jar 操作完成后将cookies写入该文件
  -C/--continue-在断点处继续
  -d/--data HTTP POST方法传输数据
  -D/--dump-header 将头信息写入该文件
  -F/--form 模拟http表单提交数据
  -v/--verbose 小写的v参数用于打印更多信息,包括发送的请求信息,在调试脚本时特别有用。
  -m/--max-time 指定处理的最大持续时间
  -H/--header 指定请求头参数
  -s/--slent reduce输出信息,如进度
  --connect-timeout 指定尝试连接的最长时间
  -x/--代理
  指定代理服务器地址和端口,默认端口为1080
  -T/--upload-file 指定上传文件路径
  -o/--output 指定输出文件名
  --retry 指定重试次数
  -e/--referer 指定引用地址
  -I/--head 只返回header信息,使用HEAD请求
  -u/--user 设置服务器用户和密码
  -O:根据服务器上的文件名,会自动在本地存在
  -r/--range 从 HTTP/1.1 或 FTP 服务器检索字节范围
  -T/--upload-file 上传文件
  使用示例
  1、抓取页面内容到文件中
  [root@xi mytest]# curl -o home.html -- 将百度首页的内容抓取到home.html中
  [root@xi mytest]#curl -o #2_#1.jpg~{A,B}/[001-201].JPG
  因为A/B下的文件名都是001、002...、201,所以下载的文件同名,所以自定义下载的文件名变成这样: 原文:A/00< @1.JPG ---> 下载后:001-A.JPG 原文:B/001.JPG ---> 下载后:001-B.JPG
  2、使用-O(大写),后面的url必须特定于某个文件,否则不会被抓到。你也可以使用正则表达式来抓取东西
  [root@xi mytest]# curl -O
  结果如下:
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 1575 100 1575 0 0 14940 0 --:--:-- --:--:-- --:--:-- 1538k
  在当前执行目录中会生成一张bdlogo.gif的图片。
  [root@xi mytest]# curl -O[1-10].JPG --下载屏幕1.jpg~screen10.jpg
  3、模拟表单信息、模拟登录、保存cookie信息
  [root@xi mytest]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=******
  4、模拟表单信息、模拟登录、保存表头信息
  [root@xi mytest]# curl -D ./cookie_D.txt -F log=aaaa -F pwd=******
  由
  生成的cookie
  -c(小写)与-D中的cookie不同。
  5、使用cookie文件
  [root@xi mytest]# curl -b ./cookie_c.txt
  6、从断点恢复,-C(大写)
  [root@xi mytest]# curl -C -O
  7、发送数据,最好使用登录页面测试,因为你传值后,curl会抓取数据回来,可以查看是否传值成功
  [root@xi mytest]# curl -d log=aaaa
  8、显示爬取错误,下面的例子清楚的显示出来。
  [root@xi mytest]# curl -f
  curl:(22)请求的URL返回错误:404
  [root@xi mytest]# curl
  404,未找到
  9。伪造源地址,有的网站会判断并请求源地址,防止盗链。
  [root@xi mytest]# curl -e:///wp-login.php
  10、当我们经常用curl做别人的事情的时候,人家会屏蔽你的IP,这个时候我们可以使用代理
  [root@xi mytest]# curl -x 24.10.28.84:32779 -o home.html
  11,对于较大的东西,我们可以分段下载
  [root@xi mytest]# curl -r 0-100 -o img.part1
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 101 100 101 0 0 105 0 --:--:-- --:--:-- --:--:-- 0
  [root@xi mytest]# curl -r 100-200 -o img.part2
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 101 100 101 0 0 57 0 0:00:01 0:00:01 --:--:-- 0
  [root@xi mytest]# curl -r 200- -o img.part3
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 104k 100 104k 0 0 52793 0 0:00:02 0:00:02 --:--:-- 88961
  [root@xi mytest]# ls |grep part | xargs du -sh
  4.0K one.part1
  112K 三.part3
  4.0K two.part2
  使用的时候,cat一下就可以了,cat img.part* >img.jpg
  12,不会显示下载进度信息
  [root@xi mytest]# curl -s -o aaa.jpg
  13、显示下载进度条
  [root@xi mytest]# curl -0(使用http1.0协议的请求)
  ############################################## # ######################### 100.0%
  14、通过ftp下载文件
  [xifj@Xi ~]$ curl -u 用户名:密码 -O
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  101 1934 101 1934 0 0 3184 0 --:--:-- --:--:-- --:--:-- 7136
  [xifj@Xi ~]$ curl -u 用户名:密码 -O
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  101 1934 101 1934 0 0 3184 0 --:--:-- --:--:-- --:--:-- 7136
  或者使用下面的方法
  [xifj@Xi ~]$ curl -O ftp://username:password@ip:port/demo/curtain/bbstudy_files/style.css
  [xifj@Xi ~]$ curl -O ftp://username:password@ip:port/demo/curtain/bbstudy_files/style.css
  15、通过ftp上传
  [xifj@Xi ~]$ curl -T test.sql ftp://username:password@ip:port/demo/curtain/bbstudy_files/
  [xifj@Xi ~]$ curl -T test.sql ftp://username:password@ip:port/demo/curtain/bbstudy_files/
  15、模拟浏览器头部
  [xifj@Xi ~]$ curl -A "Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.0)" -x 12< @3.45.67.89:1080 -o page.html -D cookie0001.txt
  16,PUT,GET,POST
  比如curl -T localfile~zz/abc.cgi,此时使用的协议是HTTP PUT方式
  刚才说到PUT,我自然会想到其他几种方法——GET和POST。

curl 抓取网页(和wget下载安装下载安装1、Ubuntu平台wget命令安装)

网站优化优采云 发表了文章 • 0 个评论 • 71 次浏览 • 2022-02-12 11:17 • 来自相关话题

  curl 抓取网页(和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下载地址:curlDownload
  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-obaidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget -Obaidu_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&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和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下载地址:curlDownload
  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-obaidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget -Obaidu_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&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别 )

网站优化优采云 发表了文章 • 0 个评论 • 57 次浏览 • 2022-02-11 12:19 • 来自相关话题

  curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别
)
  分块传输编码
  分块编码更改消息正文,以便消息正文以块的形式发送。每个块都有自己的大小指示符,紧跟在所有块之后的收录实体头字段的可选尾部。这允许发送者动态生成内容并携带有用的信息,接收者可以使用这些信息来确定是否收到了消息。
  4、curl 在指定要下载的链接时可以支持 URL 序列或集合,而 wget 不能。
  5、wget 支持递归下载,而 curl 不支持。
  二、网站抓取实例
  抓取网页有两种方式:url URL和proxy代理。以百度首页的抓取为例。
  1、url URL方法爬取
  (1)curl下载百度首页内容,保存在baidu_html文件中
  curl http://www.baidu.com/ -o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget http://www.baidu.com/ -O baidu_html
  有时,由于网络速度/数据包丢失/服务器停机等原因,网页暂时无法成功下载。这时候,你可能需要尝试多次发送连接来请求服务器的响应;如果多次还是没有响应,那么就可以确认服务器有问题了。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time 60 http://www.baidu.com/ -o baidu_html
  注意:--retry 表示重试次数;--retry-delay 表示两次重试之间的时间间隔(单位:秒);--retry-max-time 表示超时时间。
  curl -y 60 -Y 1 -m 60 http://www.baidu.com -o baidu_html
  注:-y表示测试网速的时间;-Y 表示停止传输速度的限制(单位:字节/秒);-m 表示最大连接时间,超过连接会自动断开连接并放弃连接
  (2)wget 尝试连接多次
  wget -t 10 -w 60 -T 30 http://www.baidu.com/ -O baidu_html
  注意:-t(-tries)表示重试次数;-w 表示两次重试的时间间隔(单位:秒);-T 表示链接超时时间。
  2、代理代理捕获
  代理下载是通过连接中间服务器间接下载url网页的过程,而不是直接连接网站服务器下载的url。这里代理使用 127.0.0.1:8080 进行测试。
  (1)curl通过代理爬取百度首页
  curl -x 127.0.0.1:8080 -o baidu_html http://www.baidu.com
  注意:-x表示代理服务器(ip:port),常用端口有80、8080、8086、8888、3128等,默认为80,即curl首先连接代理服务器127. 0.0.1:8080,然后通过它下载百度主页,最后127.0.0.1:8080把下载的百度主页传给卷曲到当地
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:
  http_proxy=127.0.0.1:8080
  然后输入wget命令爬取网页:
  wget http://www.baidu.com -O baidu_html 查看全部

  curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别
)
  分块传输编码
  分块编码更改消息正文,以便消息正文以块的形式发送。每个块都有自己的大小指示符,紧跟在所有块之后的收录实体头字段的可选尾部。这允许发送者动态生成内容并携带有用的信息,接收者可以使用这些信息来确定是否收到了消息。
  4、curl 在指定要下载的链接时可以支持 URL 序列或集合,而 wget 不能。
  5、wget 支持递归下载,而 curl 不支持。
  二、网站抓取实例
  抓取网页有两种方式:url URL和proxy代理。以百度首页的抓取为例。
  1、url URL方法爬取
  (1)curl下载百度首页内容,保存在baidu_html文件中
  curl http://www.baidu.com/ -o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget http://www.baidu.com/ -O baidu_html
  有时,由于网络速度/数据包丢失/服务器停机等原因,网页暂时无法成功下载。这时候,你可能需要尝试多次发送连接来请求服务器的响应;如果多次还是没有响应,那么就可以确认服务器有问题了。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time 60 http://www.baidu.com/ -o baidu_html
  注意:--retry 表示重试次数;--retry-delay 表示两次重试之间的时间间隔(单位:秒);--retry-max-time 表示超时时间。
  curl -y 60 -Y 1 -m 60 http://www.baidu.com -o baidu_html
  注:-y表示测试网速的时间;-Y 表示停止传输速度的限制(单位:字节/秒);-m 表示最大连接时间,超过连接会自动断开连接并放弃连接
  (2)wget 尝试连接多次
  wget -t 10 -w 60 -T 30 http://www.baidu.com/ -O baidu_html
  注意:-t(-tries)表示重试次数;-w 表示两次重试的时间间隔(单位:秒);-T 表示链接超时时间。
  2、代理代理捕获
  代理下载是通过连接中间服务器间接下载url网页的过程,而不是直接连接网站服务器下载的url。这里代理使用 127.0.0.1:8080 进行测试。
  (1)curl通过代理爬取百度首页
  curl -x 127.0.0.1:8080 -o baidu_html http://www.baidu.com
  注意:-x表示代理服务器(ip:port),常用端口有80、8080、8086、8888、3128等,默认为80,即curl首先连接代理服务器127. 0.0.1:8080,然后通过它下载百度主页,最后127.0.0.1:8080把下载的百度主页传给卷曲到当地
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:
  http_proxy=127.0.0.1:8080
  然后输入wget命令爬取网页:
  wget http://www.baidu.com -O baidu_html

curl 抓取网页(php中常用都实现更复杂的传输功能(post传输方式) )

网站优化优采云 发表了文章 • 0 个评论 • 42 次浏览 • 2022-02-01 10:03 • 来自相关话题

  curl 抓取网页(php中常用都实现更复杂的传输功能(post传输方式)
)
  CURL 是一个文件传输工具,它使用 URL 语法在命令行模式下工作。它支持许多协议。支持认证功能。比较复杂的传输函数一般用php实现。
  实现的功能:
  1、远程访问和采集内容
  2、实现PHP网页版FTP上传下载
  3、实现模拟登录:去一个邮件系统,curl可以模拟cookies
  4、 实现接口对接(API)、数据传输等:通过平台发送短信,捕获并传输传输的信息。
  5、实现模拟cookies等:有些属性只能在登录状态下操作。
  如何使用CURL函数:
  PHP默认不支持CURL,需要在php.ini中开启该功能
  ;extension=php_curl.dll 去掉分号
  1整个操作的第一步是使用cur_init()函数进行初始化
  $curl = curl_init(‘www.gaodaima.com&#039;)
  3.设置完成后,执行事务 curl_exec($curl);2.使用 curl_setopt() 函数设置选项。
  4 最后关闭 curl_close();
  使用PHP CURL实现传输和获取功能(后传方式):获取远程网页数据
  $user = "admin";$pass = "admin";$curlPost= "user=$user&pass=$pass";$ch = curl_init(); //初始化一个CURL对象curl_setopt($ch, CURLOPT_URL,"http://localhost/edu/login.php");//设置你所需要抓取的URLcurl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//设置curl参数,要求结果是否输出到屏幕上,为true的时候是不返回到网页中假设上面的0换成1的话,那么接下来的$data就需要echo一下。curl_setopt($ch, CURLOPT_POST, 1);//post提交curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);$data = curl_exec($ch);//运行curl,请求网页。curl_close($ch);[/code]
  实现远程模拟登录最基本的部分。
  curl还需要配置用户名和密码,但是被浏览器隐藏了。
  ================================================ === =================================\
  curl 模拟登录
  模拟登录:即使不登录php100论坛,也可以查看相应信息。
  分析登录字段->登录后保留cookie->读取cookie并跳转到相关页面->抓取次数
  1、模拟登录后创建文件保存cookie内容
  2、通过读取生成的cookie内容模拟用户登录状态
  3、去相关页面获取你需要的东西
  tempname 创建一个临时文件
  tempnam() 函数创建一个具有唯一文件名的临时文件。如果成功,该函数返回新的临时文件名。失败时返回 false。
  tempnam(目录,前缀)
  参数说明
  dir 必需。指定创建临时文件的目录。
  前缀是必需的。指定文件名的开头。
  相当于,fopen  fwirte  fclose
  它可以返回一个布尔值。使用第三方登录你的QQ和msn是非常危险的,因为它可以记录你的登录状态,并窃取你的用户名和密码。
  使用CURL模拟登录PHP100论坛
  1、分析输入框字段名和登录所需字段个数
  2、保存cookie模拟登录,获取会员金币数量
  代码:
  //初始化一个 cURL 对象$curl = curl_init();//设置你需要抓取的URLcurl_setopt($curl, CURLOPT_URL," http://www.baidu.com ");//设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//运行cURL,请求网页$data = curl_exec($curl);//关闭URL请求curl_close($curl);$user = "admin";$pass = "admin100";$curlPost= "user=$user&pass=$pa本文来源gaodai#ma#com搞*!代#%^码$网!搞代gaodaima码ss";$ch = curl_init();curl_setopt($ch, CURLOPT_URL," http://localhost/curl/login.php ");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);$data = curl_exec($ch);curl_close($ch);?>if($_POST[&#039;user&#039;]=="admin"){ echo"";}else{ echo"";}//print_r($_POST);?> 查看全部

  curl 抓取网页(php中常用都实现更复杂的传输功能(post传输方式)
)
  CURL 是一个文件传输工具,它使用 URL 语法在命令行模式下工作。它支持许多协议。支持认证功能。比较复杂的传输函数一般用php实现。
  实现的功能:
  1、远程访问和采集内容
  2、实现PHP网页版FTP上传下载
  3、实现模拟登录:去一个邮件系统,curl可以模拟cookies
  4、 实现接口对接(API)、数据传输等:通过平台发送短信,捕获并传输传输的信息。
  5、实现模拟cookies等:有些属性只能在登录状态下操作。
  如何使用CURL函数:
  PHP默认不支持CURL,需要在php.ini中开启该功能
  ;extension=php_curl.dll 去掉分号
  1整个操作的第一步是使用cur_init()函数进行初始化
  $curl = curl_init(‘www.gaodaima.com&#039;)
  3.设置完成后,执行事务 curl_exec($curl);2.使用 curl_setopt() 函数设置选项。
  4 最后关闭 curl_close();
  使用PHP CURL实现传输和获取功能(后传方式):获取远程网页数据
  $user = "admin";$pass = "admin";$curlPost= "user=$user&pass=$pass";$ch = curl_init(); //初始化一个CURL对象curl_setopt($ch, CURLOPT_URL,"http://localhost/edu/login.php";);//设置你所需要抓取的URLcurl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//设置curl参数,要求结果是否输出到屏幕上,为true的时候是不返回到网页中假设上面的0换成1的话,那么接下来的$data就需要echo一下。curl_setopt($ch, CURLOPT_POST, 1);//post提交curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);$data = curl_exec($ch);//运行curl,请求网页。curl_close($ch);[/code]
  实现远程模拟登录最基本的部分。
  curl还需要配置用户名和密码,但是被浏览器隐藏了。
  ================================================ === =================================\
  curl 模拟登录
  模拟登录:即使不登录php100论坛,也可以查看相应信息。
  分析登录字段->登录后保留cookie->读取cookie并跳转到相关页面->抓取次数
  1、模拟登录后创建文件保存cookie内容
  2、通过读取生成的cookie内容模拟用户登录状态
  3、去相关页面获取你需要的东西
  tempname 创建一个临时文件
  tempnam() 函数创建一个具有唯一文件名的临时文件。如果成功,该函数返回新的临时文件名。失败时返回 false。
  tempnam(目录,前缀)
  参数说明
  dir 必需。指定创建临时文件的目录。
  前缀是必需的。指定文件名的开头。
  相当于,fopen  fwirte  fclose
  它可以返回一个布尔值。使用第三方登录你的QQ和msn是非常危险的,因为它可以记录你的登录状态,并窃取你的用户名和密码。
  使用CURL模拟登录PHP100论坛
  1、分析输入框字段名和登录所需字段个数
  2、保存cookie模拟登录,获取会员金币数量
  代码:
  //初始化一个 cURL 对象$curl = curl_init();//设置你需要抓取的URLcurl_setopt($curl, CURLOPT_URL," http://www.baidu.com ");//设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//运行cURL,请求网页$data = curl_exec($curl);//关闭URL请求curl_close($curl);$user = "admin";$pass = "admin100";$curlPost= "user=$user&pass=$pa本文来源gaodai#ma#com搞*!代#%^码$网!搞代gaodaima码ss";$ch = curl_init();curl_setopt($ch, CURLOPT_URL," http://localhost/curl/login.php ");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);$data = curl_exec($ch);curl_close($ch);?>if($_POST[&#039;user&#039;]=="admin"){ echo"";}else{ echo"";}//print_r($_POST);?>

curl 抓取网页( PHP扩展完成一个请求的抓取网页内容请求步骤介绍 )

网站优化优采云 发表了文章 • 0 个评论 • 44 次浏览 • 2022-01-31 11:07 • 来自相关话题

  curl 抓取网页(
PHP扩展完成一个请求的抓取网页内容请求步骤介绍
)
  curl - 抓取网络数据
  时间:2019-08-09
  本文章为大家介绍curl-爬取网页数据,主要包括curl-爬取网页数据使用实例、应用技巧、基础知识点总结及注意事项,具有一定的参考价值,需要的朋友们可以参考一下。
  使用 CURL 的 PHP 扩展发送 HTTP 请求一般有以下步骤:
  1、初始化连接句柄;
  2、配置参数;
  3、执行并得到结果;
  4、释放 CURL 连接句柄。
  下面是curl模拟一个get请求,抓取网页内容:
  $url="http://book.zongheng.com/chapt ... 3B%3B <br /><br />
  //1.初始化curl
$ch=curl_init($url);//第一步,我们通过函数curl_init()创建一个新的curl会话
//2.设置传输选项(向服务器端发送请求)
//curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//3.执行curl请求(接收服务器端发送的数据)
$output=curl_exec($ch);
//4.关闭curl
curl_close($ch);
//匹配标题 第一章 惊蛰
preg_match_all("/(.*?)/", $output, $title);
//匹配p标签段落内容 <p>二月二,龙抬头。
preg_match_all("/
  (.*?)/", $output, $match);
//. 是任意字符 可以匹配任何单个字符,
//.*? 表示匹配任意字符到下一个符合条件的字符
$a=$match[0];
echo implode( ' ',$a); <br /><br /> 查看全部

  curl 抓取网页(
PHP扩展完成一个请求的抓取网页内容请求步骤介绍
)
  curl - 抓取网络数据
  时间:2019-08-09
  本文章为大家介绍curl-爬取网页数据,主要包括curl-爬取网页数据使用实例、应用技巧、基础知识点总结及注意事项,具有一定的参考价值,需要的朋友们可以参考一下。
  使用 CURL 的 PHP 扩展发送 HTTP 请求一般有以下步骤:
  1、初始化连接句柄;
  2、配置参数;
  3、执行并得到结果;
  4、释放 CURL 连接句柄。
  下面是curl模拟一个get请求,抓取网页内容:
  $url="http://book.zongheng.com/chapt ... 3B%3B <br /><br />
  //1.初始化curl
$ch=curl_init($url);//第一步,我们通过函数curl_init()创建一个新的curl会话
//2.设置传输选项(向服务器端发送请求)
//curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//3.执行curl请求(接收服务器端发送的数据)
$output=curl_exec($ch);
//4.关闭curl
curl_close($ch);
//匹配标题 第一章 惊蛰
preg_match_all("/(.*?)/", $output, $title);
//匹配p标签段落内容 <p>二月二,龙抬头。
preg_match_all("/
  (.*?)/", $output, $match);
//. 是任意字符 可以匹配任何单个字符,
//.*? 表示匹配任意字符到下一个符合条件的字符
$a=$match[0];
echo implode( ' ',$a); <br /><br />

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

网站优化优采云 发表了文章 • 0 个评论 • 51 次浏览 • 2022-01-31 10:13 • 来自相关话题

  curl 抓取网页(curl和wget抓取实例抓取网页(1)_html文件)
  curl 和 wget 抓取实例
  抓取网页主要有两种方式:url URL和proxy代理
  1、 url 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,中间是 8080 冒号“:”隔开形成套接字)
  (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,然后通过21 8.107.21.252:8080下载百度首页,最后218.107.21.252:8080通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(curl和wget抓取实例抓取网页(1)_html文件)
  curl 和 wget 抓取实例
  抓取网页主要有两种方式:url URL和proxy代理
  1、 url 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,中间是 8080 冒号“:”隔开形成套接字)
  (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,然后通过21 8.107.21.252:8080下载百度首页,最后218.107.21.252:8080通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)

网站优化优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2022-01-30 20:09 • 来自相关话题

  curl 抓取网页(和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 -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,中间是 8080 冒号“:”隔开形成套接字)
  (1)curl通过代理爬取百度首页
  curl -x 218.107.21.252:8080 -o aaaaa(常用端口有80、8080、8086、8888、3128等,默认8&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和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 -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,中间是 8080 冒号“:”隔开形成套接字)
  (1)curl通过代理爬取百度首页
  curl -x 218.107.21.252:8080 -o aaaaa(常用端口有80、8080、8086、8888、3128等,默认8&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:sudoapt)

网站优化优采云 发表了文章 • 0 个评论 • 66 次浏览 • 2022-01-28 08:01 • 来自相关话题

  curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:sudoapt)
  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 /-o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget -O baidu_html2
  有时,由于网络速度/数据包丢失/服务器停机等原因,网页暂时无法成功下载。
  这时候可能需要尝试多次发送连接来请求服务器的响应;如果多次仍然没有响应,则可以确认服务器有问题。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time60 -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等,默认80)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget是通过代理下载的,和curl不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd~)下新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:sudoapt)
  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 /-o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget -O baidu_html2
  有时,由于网络速度/数据包丢失/服务器停机等原因,网页暂时无法成功下载。
  这时候可能需要尝试多次发送连接来请求服务器的响应;如果多次仍然没有响应,则可以确认服务器有问题。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time60 -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等,默认80)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget是通过代理下载的,和curl不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd~)下新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(运用PHP的cURL库可以基本和有效地去抓网页。)

网站优化优采云 发表了文章 • 0 个评论 • 62 次浏览 • 2022-01-27 15:25 • 来自相关话题

  curl 抓取网页(运用PHP的cURL库可以基本和有效地去抓网页。)
  使用 PHP 的 cURL 库可以基本有效的抓取网页。你只需要运行一个脚本,然后分析你爬取的网页,然后你就可以通过编程方式获取你想要的数据。无论您是想从链接中获取部分数据,还是获取 XML 文件并将其导入数据库,甚至是基本的 Web 内容获取,cURL 都是一个强大的 PHP 库。本文主要介绍如何使用这个 PHP 库。
  启用 cURL 配置
  首先,我们要确保我们的 PHP 可以启用这个库,你可以使用 php_info() 函数来获取这些信息。
  如果可以在网页上看到上面的输入,则说明 cURL 库已启用。
  如果你看到它,那么你需要配置你的 PHP 并启用这个库。如果你是在windows平台,那是很基础的,你需要改变你的php.ini文件的配置,找到php_curl.dll,去掉分号注释。如下:
  //撤消下一条评论
  扩展=php_curl.dll
  如果你在 Linux 上,那么你需要重新编译你的 PHP。编辑时需要打开编译参数——在configure命令中添加“--with-curl”参数。
  一个小例子
  如果一切就绪,以上就是一个小例程:
  如何发布数据
  上面是爬取网页的代码,上面是POST数据到网页。假设我们有一个处理表单的 URL,该表单接受两个表单字段,一个用于电话号码,一个用于文本消息的文本。 查看全部

  curl 抓取网页(运用PHP的cURL库可以基本和有效地去抓网页。)
  使用 PHP 的 cURL 库可以基本有效的抓取网页。你只需要运行一个脚本,然后分析你爬取的网页,然后你就可以通过编程方式获取你想要的数据。无论您是想从链接中获取部分数据,还是获取 XML 文件并将其导入数据库,甚至是基本的 Web 内容获取,cURL 都是一个强大的 PHP 库。本文主要介绍如何使用这个 PHP 库。
  启用 cURL 配置
  首先,我们要确保我们的 PHP 可以启用这个库,你可以使用 php_info() 函数来获取这些信息。
  如果可以在网页上看到上面的输入,则说明 cURL 库已启用。
  如果你看到它,那么你需要配置你的 PHP 并启用这个库。如果你是在windows平台,那是很基础的,你需要改变你的php.ini文件的配置,找到php_curl.dll,去掉分号注释。如下:
  //撤消下一条评论
  扩展=php_curl.dll
  如果你在 Linux 上,那么你需要重新编译你的 PHP。编辑时需要打开编译参数——在configure命令中添加“--with-curl”参数。
  一个小例子
  如果一切就绪,以上就是一个小例程:
  如何发布数据
  上面是爬取网页的代码,上面是POST数据到网页。假设我们有一个处理表单的 URL,该表单接受两个表单字段,一个用于电话号码,一个用于文本消息的文本。

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)

网站优化优采云 发表了文章 • 0 个评论 • 58 次浏览 • 2022-01-23 06:13 • 来自相关话题

  curl 抓取网页(和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&lt; @0)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和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&lt; @0)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(PHP爬虫实现方法直接采用PHPcurl来抓取数据socket方法)

网站优化优采云 发表了文章 • 0 个评论 • 55 次浏览 • 2022-02-27 13:01 • 来自相关话题

  curl 抓取网页(PHP爬虫实现方法直接采用PHPcurl来抓取数据socket方法)
  PHP爬虫总结
  PHP爬虫 网上的爬虫很多很多,五花八门,但是大家都不喜欢用PHP写爬虫。这可能是由于不稳定和组件库太少。不管怎样,PHP 还是很容易写的。 curl实现方式直接使用PHP curl来抓取数据。 socket方法采用最原创的socket方法。有一个https:hightmanpspider项目,非常完美。它也使用我使用腾讯云的主机。 curl方法利用爬取网页的步骤设置种子url,一般是网站的域名。通过这个首页一步步抓取种子url,分析这个页面,获取所有相关url,根据是否抓取外站策略判断。处理url判断是否是需要爬取的网页。如果是要爬取的网页,则处理存储。如果没有,请更新队列。 PHP爬虫推荐有多种:https:smartengphp-crawler https:smartengpspider 特点 轻量级、内核 简单易用 基于Redis的调度插件,支持分布式和断点抓取,易于扩展和定制,可以自定义调度插件-根据您的需要随时进入
  1.1K 查看全部

  curl 抓取网页(PHP爬虫实现方法直接采用PHPcurl来抓取数据socket方法)
  PHP爬虫总结
  PHP爬虫 网上的爬虫很多很多,五花八门,但是大家都不喜欢用PHP写爬虫。这可能是由于不稳定和组件库太少。不管怎样,PHP 还是很容易写的。 curl实现方式直接使用PHP curl来抓取数据。 socket方法采用最原创的socket方法。有一个https:hightmanpspider项目,非常完美。它也使用我使用腾讯云的主机。 curl方法利用爬取网页的步骤设置种子url,一般是网站的域名。通过这个首页一步步抓取种子url,分析这个页面,获取所有相关url,根据是否抓取外站策略判断。处理url判断是否是需要爬取的网页。如果是要爬取的网页,则处理存储。如果没有,请更新队列。 PHP爬虫推荐有多种:https:smartengphp-crawler https:smartengpspider 特点 轻量级、内核 简单易用 基于Redis的调度插件,支持分布式和断点抓取,易于扩展和定制,可以自定义调度插件-根据您的需要随时进入
  1.1K

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)

网站优化优采云 发表了文章 • 0 个评论 • 58 次浏览 • 2022-02-24 23:21 • 来自相关话题

  curl 抓取网页(和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&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和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&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(PHPheader调试很有用的原因及解决办法(一))

网站优化优采云 发表了文章 • 0 个评论 • 38 次浏览 • 2022-02-24 03:19 • 来自相关话题

  curl 抓取网页(PHPheader调试很有用的原因及解决办法(一))
  [header_size] => 312
  [request_size] => 61
  [文件时间] => -1
  [ssl_verify_result] => 0
  [redirect_count] => 0
  [总时间] => 0.172
  [namelookup_time] => 0.016
  [连接时间] => 0.063
  [pretransfer_time] => 0.063
  [大小上传] => 0
  [size_download] => 14658[speed_download] => 85220
  [speed_upload] => 0
  [下载内容长度] => 14658
  [上传内容长度] => 0
  [starttransfer_time] => 0.125
  [重定向时间] => 0
  [certinfo] => 数组
  (
  )
  [redirect_url] =>
  )
  2、这些信息对于调试非常有用。例如,cURL在爬取时,由于网络等原因,爬取的数据可能不完整。这就是我们如何从获得的数据中计算文件大小的方法。 ,然后与 curl_getinfo() 得到的比较。如果大小相等,则确定下载正确,否则重复尝试。
  我们来看一个抓图的例子:
  代码如下:
  PHP
  header("Content-Type: image/png");
  //1、初始化
  $ch = curl_init();
  //2、设置选项,包括URL
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  curl_setopt($ch,1);
  //3、执行并获取内容
  $res = curl_exec($ch);
  //获取信息
  $info = curl_getinfo($ch);
  //4、释放资源
  curl_close($ch);
  file_put_contents("d:/aa.png",$res);
  $size = filesize("d:/aa.png");
  if ($size != $info['size_download']) {
  echo "下载的数据不完整,请重新下载";
  } 否则 {
  echo "下载数据完成";
  }
  3、使用 POST 方法在 cURL 中发送数据
  代码如下:
  PHP
  $ch = curl_init();
  $data = array('name'=>'kelly','age'=>27,'sex'=>1);
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  //设置为帖子
  curl_setopt($ch,CURLOPT_POST,1);
  //添加post变量
  curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
  $res = curl_exec($ch);
  curl_close($ch);
  回声 $res;
  你可以用这个方法模拟一条消息,也可以坐在浇水机器人上,思路是一样的
  4、使用 cURL 上传文件
  代码如下:
  '美女',"上传"=>"@a.zip");
  $ch = curl_init();
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  curl_setopt($ch,$data);
  $res = curl_exec($ch);
  curl_close($ch);
  回声 $res;
  注意:发送文件时,在文件名前加上@,并使用完整路径
  5、cURL 设置
  其实cURL有很多配置选项,这些选项是cURL的灵魂,通过setopt()来设置,下面总结了一些比较常见和重要的配置项,希望读者以后使用cURL。帮助:
  CURLOPT_AUTOREFERER:根据location:重定向时,自动在header中设置Referer:信息
  CURLOPT_COOKIESESSION:启用后,cURL 将紧密传递会话 cookie,而忽略其他 cookie
  CURLOPT_HEADER:将头信息作为数据流输出
  CURLOPT_INFILESIZE:设置上传文件的字节大小
  CURLOPT_MAXCONNECTS:允许的最大连接数
  CURLOPT_MAXREDIRS:指定 HTTP 重定向的最大数量
  CURLOPT_COOKIE:设置 HTTP 请求的“cookie:”部分的内容。多个 cookie 后跟一个分号和分号后的一个空格
  CURLOPT_POSTFIELDS:所有数据都使用HTTP协议中的“POST”操作发送文件,文件名前加@前缀并使用完整路径
  ......
  更多配置项请参考PHP手册
  cURL 很强大,它是一个通用库,不是 PHP 独有的。
  希望读者通过学习这篇博文中的几个经典 cURL 示例有所收获。
  总结
  如果你觉得编程之家网站的内容还不错,欢迎你把编程之家网站推荐给你的程序员朋友。 查看全部

  curl 抓取网页(PHPheader调试很有用的原因及解决办法(一))
  [header_size] => 312
  [request_size] => 61
  [文件时间] => -1
  [ssl_verify_result] => 0
  [redirect_count] => 0
  [总时间] => 0.172
  [namelookup_time] => 0.016
  [连接时间] => 0.063
  [pretransfer_time] => 0.063
  [大小上传] => 0
  [size_download] => 14658[speed_download] => 85220
  [speed_upload] => 0
  [下载内容长度] => 14658
  [上传内容长度] => 0
  [starttransfer_time] => 0.125
  [重定向时间] => 0
  [certinfo] => 数组
  (
  )
  [redirect_url] =>
  )
  2、这些信息对于调试非常有用。例如,cURL在爬取时,由于网络等原因,爬取的数据可能不完整。这就是我们如何从获得的数据中计算文件大小的方法。 ,然后与 curl_getinfo() 得到的比较。如果大小相等,则确定下载正确,否则重复尝试。
  我们来看一个抓图的例子:
  代码如下:
  PHP
  header("Content-Type: image/png");
  //1、初始化
  $ch = curl_init();
  //2、设置选项,包括URL
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  curl_setopt($ch,1);
  //3、执行并获取内容
  $res = curl_exec($ch);
  //获取信息
  $info = curl_getinfo($ch);
  //4、释放资源
  curl_close($ch);
  file_put_contents("d:/aa.png",$res);
  $size = filesize("d:/aa.png");
  if ($size != $info['size_download']) {
  echo "下载的数据不完整,请重新下载";
  } 否则 {
  echo "下载数据完成";
  }
  3、使用 POST 方法在 cURL 中发送数据
  代码如下:
  PHP
  $ch = curl_init();
  $data = array('name'=>'kelly','age'=>27,'sex'=>1);
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  //设置为帖子
  curl_setopt($ch,CURLOPT_POST,1);
  //添加post变量
  curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
  $res = curl_exec($ch);
  curl_close($ch);
  回声 $res;
  你可以用这个方法模拟一条消息,也可以坐在浇水机器人上,思路是一样的
  4、使用 cURL 上传文件
  代码如下:
  '美女',"上传"=>"@a.zip");
  $ch = curl_init();
  curl_setopt($ch,"");
  curl_setopt($ch,1);
  curl_setopt($ch,$data);
  $res = curl_exec($ch);
  curl_close($ch);
  回声 $res;
  注意:发送文件时,在文件名前加上@,并使用完整路径
  5、cURL 设置
  其实cURL有很多配置选项,这些选项是cURL的灵魂,通过setopt()来设置,下面总结了一些比较常见和重要的配置项,希望读者以后使用cURL。帮助:
  CURLOPT_AUTOREFERER:根据location:重定向时,自动在header中设置Referer:信息
  CURLOPT_COOKIESESSION:启用后,cURL 将紧密传递会话 cookie,而忽略其他 cookie
  CURLOPT_HEADER:将头信息作为数据流输出
  CURLOPT_INFILESIZE:设置上传文件的字节大小
  CURLOPT_MAXCONNECTS:允许的最大连接数
  CURLOPT_MAXREDIRS:指定 HTTP 重定向的最大数量
  CURLOPT_COOKIE:设置 HTTP 请求的“cookie:”部分的内容。多个 cookie 后跟一个分号和分号后的一个空格
  CURLOPT_POSTFIELDS:所有数据都使用HTTP协议中的“POST”操作发送文件,文件名前加@前缀并使用完整路径
  ......
  更多配置项请参考PHP手册
  cURL 很强大,它是一个通用库,不是 PHP 独有的。
  希望读者通过学习这篇博文中的几个经典 cURL 示例有所收获。
  总结
  如果你觉得编程之家网站的内容还不错,欢迎你把编程之家网站推荐给你的程序员朋友。

curl 抓取网页(curl和wget下载安装1、Ubuntu平台wget命令安装:sudo)

网站优化优采云 发表了文章 • 0 个评论 • 59 次浏览 • 2022-02-22 04:11 • 来自相关话题

  curl 抓取网页(curl和wget下载安装1、Ubuntu平台wget命令安装:sudo)
  curl和wget下载安装
  1、Ubuntu 平台
  wget命令安装:sudo apt-get install wget(普通用户登录,需要输入密码;root账户登录,无需输入密码)
  curl命令安装:sudo apt-get install curl(同wget)
  2、Windows 平台
  wget下载地址:
  curl下载地址:
  wget和curl包下载地址:
  在Windows平台下,curl下载解压后直接为curl.exe格式,复制到系统命令目录下的C:WindowsSystem32。
  Windows平台下,wget下载解压后为wget-1.11.4-1-setup.exe格式,需要安装;安装完成后,在环境变量-系统变量-路径目录下添加其安装
  curl 和 wget 抓取实例
  抓取网页主要有两种方式:url URL 和代理代理。下面是一个爬取“百度”首页的例子。
  1、 url 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,中间是 8080 冒号“:”隔开形成套接字)
  (1)curl通过代理爬取百度首页
  curl -x 218.107.21.252:8080 -o aaaaa(常用端口有80、8080、8086、8888、3128等,默认8&lt; @0)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录下(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(curl和wget下载安装1、Ubuntu平台wget命令安装:sudo)
  curl和wget下载安装
  1、Ubuntu 平台
  wget命令安装:sudo apt-get install wget(普通用户登录,需要输入密码;root账户登录,无需输入密码)
  curl命令安装:sudo apt-get install curl(同wget)
  2、Windows 平台
  wget下载地址:
  curl下载地址:
  wget和curl包下载地址:
  在Windows平台下,curl下载解压后直接为curl.exe格式,复制到系统命令目录下的C:WindowsSystem32。
  Windows平台下,wget下载解压后为wget-1.11.4-1-setup.exe格式,需要安装;安装完成后,在环境变量-系统变量-路径目录下添加其安装
  curl 和 wget 抓取实例
  抓取网页主要有两种方式:url URL 和代理代理。下面是一个爬取“百度”首页的例子。
  1、 url 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,中间是 8080 冒号“:”隔开形成套接字)
  (1)curl通过代理爬取百度首页
  curl -x 218.107.21.252:8080 -o aaaaa(常用端口有80、8080、8086、8888、3128等,默认8&lt; @0)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录下(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(curl抓取网页视频的教程详细教程三个必须要先设置的参数)

网站优化优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2022-02-17 12:06 • 来自相关话题

  curl 抓取网页(curl抓取网页视频的教程详细教程三个必须要先设置的参数)
  curl抓取网页视频的教程详细教程三个必须要先设置的参数,解读后其中,下载地址是array(源主机,目标地址,协议)这三个参数是需要确定的,关键是协议也就是airtime(机器可以无限次工作时间)也就是服务器可以持续开机的时间,我们必须设置2秒的array,如果设置3秒,那就等于异步下载了,不能存储实际抓取速度-根据官方说法,10mb每秒也是可以抓取一个视频的!因为手机端抓取我就设置了300mb每秒了!其实android和ios都可以抓取流媒体文件的!流媒体文件的格式可以是http://,也可以是一个图片文件,或者其他通过rtmp协议(即传输协议)传输的内容!那么我们应该抓取什么样的格式呢?1。
  网站的视频源只有文字并且是文件的格式,不带图片,也没有协议代码或者代码解析2。网站的视频一般为http://加密视频要解密,至少要解密字幕,才能正常的接收你下载到本地的视频,比如字幕文件!google搜索"如何下载视频",search和点击一个国内的网站没有反应,那么我们该如何抓取你想要下载的视频的呢?而抓取哪些视频呢?这个就要靠一个官方配套的地址,点击下载即可,注意手机平板都可以抓取的!顺带吐槽一下太多网站不支持一键下载,我都抓取完,依然要请大佬们收费,但是实际上官方自己并不会做这种限制,当然他也不可能做,但是大家的需求而已!。 查看全部

  curl 抓取网页(curl抓取网页视频的教程详细教程三个必须要先设置的参数)
  curl抓取网页视频的教程详细教程三个必须要先设置的参数,解读后其中,下载地址是array(源主机,目标地址,协议)这三个参数是需要确定的,关键是协议也就是airtime(机器可以无限次工作时间)也就是服务器可以持续开机的时间,我们必须设置2秒的array,如果设置3秒,那就等于异步下载了,不能存储实际抓取速度-根据官方说法,10mb每秒也是可以抓取一个视频的!因为手机端抓取我就设置了300mb每秒了!其实android和ios都可以抓取流媒体文件的!流媒体文件的格式可以是http://,也可以是一个图片文件,或者其他通过rtmp协议(即传输协议)传输的内容!那么我们应该抓取什么样的格式呢?1。
  网站的视频源只有文字并且是文件的格式,不带图片,也没有协议代码或者代码解析2。网站的视频一般为http://加密视频要解密,至少要解密字幕,才能正常的接收你下载到本地的视频,比如字幕文件!google搜索"如何下载视频",search和点击一个国内的网站没有反应,那么我们该如何抓取你想要下载的视频的呢?而抓取哪些视频呢?这个就要靠一个官方配套的地址,点击下载即可,注意手机平板都可以抓取的!顺带吐槽一下太多网站不支持一键下载,我都抓取完,依然要请大佬们收费,但是实际上官方自己并不会做这种限制,当然他也不可能做,但是大家的需求而已!。

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)

网站优化优采云 发表了文章 • 0 个评论 • 58 次浏览 • 2022-02-17 04:09 • 来自相关话题

  curl 抓取网页(和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 -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,中间是 8080 冒号“:”隔开形成套接字)
  (1)curl通过代理爬取百度首页
  curl -x 218.107.21.252:8080 -o aaaaa(常用端口有80、8080、8086、8888、3128等,默认8&lt; @0)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和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 -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,中间是 8080 冒号“:”隔开形成套接字)
  (1)curl通过代理爬取百度首页
  curl -x 218.107.21.252:8080 -o aaaaa(常用端口有80、8080、8086、8888、3128等,默认8&lt; @0)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别 )

网站优化优采云 发表了文章 • 0 个评论 • 62 次浏览 • 2022-02-16 19:17 • 来自相关话题

  curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别
)
  分块传输编码
  分块编码更改消息正文,以便消息正文以块的形式发送。每个块都有自己的大小指示符,紧跟在所有块之后的收录实体头字段的可选尾部。这允许发送者动态生成内容并携带有用的信息,接收者可以使用这些信息来确定是否收到了消息。
  4、curl 在指定要下载的链接时可以支持 URL 序列或集合,而 wget 不能。
  5、wget 支持递归下载,而 curl 不支持。
  二、网站抓取实例
  抓取网页有两种方式:url URL和proxy代理。以百度首页的抓取为例。
  1、url URL方法爬取
  (1)curl下载百度首页内容,保存在baidu_html文件中
  curl http://www.baidu.com/ -o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget http://www.baidu.com/ -O baidu_html
  有时,由于网速/数据包丢失/服务器宕机等原因,网页暂时无法成功下载。这时候,你可能需要尝试多次发送连接来请求服务器的响应;如果多次还是没有响应,那么就可以确认服务器有问题了。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time 60 http://www.baidu.com/ -o baidu_html
  注意:--retry 表示重试次数;--retry-delay 表示两次重试之间的时间间隔(单位:秒);--retry-max-time 表示超时时间。
  curl -y 60 -Y 1 -m 60 http://www.baidu.com -o baidu_html
  注:-y表示测试网速的时间;-Y 表示停止传输速度的限制(单位:字节/秒);-m 表示最大连接时间,超过连接会自动断开连接并放弃连接
  (2)wget 尝试连接多次
  wget -t 10 -w 60 -T 30 http://www.baidu.com/ -O baidu_html
  注意:-t(-tries)表示重试次数;-w 表示两次重试的时间间隔(单位:秒);-T 表示链接超时时间。
  2、代理代理捕获
  代理下载是通过连接中间服务器间接下载url网页的过程,而不是直接连接网站服务器下载的url。这里代理使用 127.0.0.1:8080 进行测试。
  (1)curl通过代理爬取百度首页
  curl -x 127.0.0.1:8080 -o baidu_html http://www.baidu.com
  注:-x表示代理服务器(ip:port),常用端口有80、8080、8086、8888、3128等,默认为80,即curl先连接代理服务器127.&lt; @0.0.1:8080,然后通过它下载百度主页,最后将下载的百度主页转curl到本地127.0.0.@ &gt;1:8080
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:
  http_proxy=127.0.0.1:8080
  然后输入wget命令爬取网页:
  wget http://www.baidu.com -O baidu_html 查看全部

  curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别
)
  分块传输编码
  分块编码更改消息正文,以便消息正文以块的形式发送。每个块都有自己的大小指示符,紧跟在所有块之后的收录实体头字段的可选尾部。这允许发送者动态生成内容并携带有用的信息,接收者可以使用这些信息来确定是否收到了消息。
  4、curl 在指定要下载的链接时可以支持 URL 序列或集合,而 wget 不能。
  5、wget 支持递归下载,而 curl 不支持。
  二、网站抓取实例
  抓取网页有两种方式:url URL和proxy代理。以百度首页的抓取为例。
  1、url URL方法爬取
  (1)curl下载百度首页内容,保存在baidu_html文件中
  curl http://www.baidu.com/ -o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget http://www.baidu.com/ -O baidu_html
  有时,由于网速/数据包丢失/服务器宕机等原因,网页暂时无法成功下载。这时候,你可能需要尝试多次发送连接来请求服务器的响应;如果多次还是没有响应,那么就可以确认服务器有问题了。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time 60 http://www.baidu.com/ -o baidu_html
  注意:--retry 表示重试次数;--retry-delay 表示两次重试之间的时间间隔(单位:秒);--retry-max-time 表示超时时间。
  curl -y 60 -Y 1 -m 60 http://www.baidu.com -o baidu_html
  注:-y表示测试网速的时间;-Y 表示停止传输速度的限制(单位:字节/秒);-m 表示最大连接时间,超过连接会自动断开连接并放弃连接
  (2)wget 尝试连接多次
  wget -t 10 -w 60 -T 30 http://www.baidu.com/ -O baidu_html
  注意:-t(-tries)表示重试次数;-w 表示两次重试的时间间隔(单位:秒);-T 表示链接超时时间。
  2、代理代理捕获
  代理下载是通过连接中间服务器间接下载url网页的过程,而不是直接连接网站服务器下载的url。这里代理使用 127.0.0.1:8080 进行测试。
  (1)curl通过代理爬取百度首页
  curl -x 127.0.0.1:8080 -o baidu_html http://www.baidu.com
  注:-x表示代理服务器(ip:port),常用端口有80、8080、8086、8888、3128等,默认为80,即curl先连接代理服务器127.&lt; @0.0.1:8080,然后通过它下载百度主页,最后将下载的百度主页转curl到本地127.0.0.@ &gt;1:8080
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:
  http_proxy=127.0.0.1:8080
  然后输入wget命令爬取网页:
  wget http://www.baidu.com -O baidu_html

curl 抓取网页( hebedichPHP利用Curl实现并发多线程下载文件以上就是)

网站优化优采云 发表了文章 • 0 个评论 • 70 次浏览 • 2022-02-15 10:21 • 来自相关话题

  curl 抓取网页(
hebedichPHP利用Curl实现并发多线程下载文件以上就是)
  PHP结合curl实现多线程爬取
  更新时间:2015-07-09 11:09:13 发布者:hebedich
  PHP可以使用Curl来完成各种文件传输操作,比如模拟浏览器发送GET、POST请求等。但是由于PHP语言本身不支持多线程,开发爬虫程序的效率不高,所以经常需要使用 Curl Multi Functions。实现并发多线程访问多个url地址实现并发多线程抓取网页或下载文件的功能
  PHP结合curl实现多线程爬取
  让我们再看几个例子
  (1)下面的代码是爬取多个URL,然后将爬取到的URL的页面代码写入到指定文件中
  $urls = array(
'https://www.jb51.net/',
'http://www.google.com/',
'http://www.example.com/'
); // 设置要抓取的页面URL
$save_to='/test.txt'; // 把抓取的代码写入该文件
$st = fopen($save_to,"a");
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i], CURLOPT_FILE,$st); // 将爬取的代码写入文件
curl_multi_add_handle ($mh,$conn[$i]);
} // 初始化
do {
curl_multi_exec($mh,$active);
} while ($active); // 执行
foreach ($urls as $i => $url) {
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
} // 结束清理
curl_multi_close($mh);
fclose($st);
  (2)下面的代码和上面类似,只不过这个地方是先把获取到的代码放到一个变量中,然后再将获取到的内容写入到指定的文件中
  $urls = array(
'https://www.jb51.net/',
'http://www.google.com/',
'http://www.example.com/'
);
$save_to='/test.txt'; // 把抓取的代码写入该文件
$st = fopen($save_to,"a");
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,true); // 不将爬取代码写到浏览器,而是转化为字符串
curl_multi_add_handle ($mh,$conn[$i]);
}
do {
curl_multi_exec($mh,$active);
} while ($active);
foreach ($urls as $i => $url) {
$data = curl_multi_getcontent($conn[$i]); // 获得爬取的代码字符串
fwrite($st,$data); // 将字符串写入文件
} // 获得数据变量,并写入文件
foreach ($urls as $i => $url) {
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
}
curl_multi_close($mh);
fclose($st);
  (3)以下代码实现使用PHP的Curl Functions实现并发多线程下载文件
  $urls=array(
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip'
);
$save_to='./home/';
$mh=curl_multi_init();
foreach($urls as $i=>$url){
$g=$save_to.basename($url);
if(!is_file($g)){
$conn[$i]=curl_init($url);
$fp[$i]=fopen($g,"w");
curl_setopt($conn[$i],CURLOPT_USERAGENT,"Mozilla/4.0(compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i],CURLOPT_FILE,$fp[$i]);
curl_setopt($conn[$i],CURLOPT_HEADER ,0);
curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,60);
curl_multi_add_handle($mh,$conn[$i]);
}
}
do{
$n=curl_multi_exec($mh,$active);
}while($active);
foreach($urls as $i=>$url){
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
fclose($fp[$i]);
}
curl_multi_close($mh);$urls=array(
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip'
);
$save_to='./home/';
$mh=curl_multi_init();
foreach($urls as $i=>$url){
$g=$save_to.basename($url);
if(!is_file($g)){
$conn[$i]=curl_init($url);
$fp[$i]=fopen($g,"w");
curl_setopt($conn[$i],CURLOPT_USERAGENT,"Mozilla/4.0(compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i],CURLOPT_FILE,$fp[$i]);
curl_setopt($conn[$i],CURLOPT_HEADER ,0);
curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,60);
curl_multi_add_handle($mh,$conn[$i]);
}
}
do{
$n=curl_multi_exec($mh,$active);
}while($active);
foreach($urls as $i=>$url){
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
fclose($fp[$i]);
}
curl_multi_close($mh);
  以上就是本文的全部内容,希望大家喜欢。 查看全部

  curl 抓取网页(
hebedichPHP利用Curl实现并发多线程下载文件以上就是)
  PHP结合curl实现多线程爬取
  更新时间:2015-07-09 11:09:13 发布者:hebedich
  PHP可以使用Curl来完成各种文件传输操作,比如模拟浏览器发送GET、POST请求等。但是由于PHP语言本身不支持多线程,开发爬虫程序的效率不高,所以经常需要使用 Curl Multi Functions。实现并发多线程访问多个url地址实现并发多线程抓取网页或下载文件的功能
  PHP结合curl实现多线程爬取
  让我们再看几个例子
  (1)下面的代码是爬取多个URL,然后将爬取到的URL的页面代码写入到指定文件中
  $urls = array(
'https://www.jb51.net/',
'http://www.google.com/',
'http://www.example.com/'
); // 设置要抓取的页面URL
$save_to='/test.txt'; // 把抓取的代码写入该文件
$st = fopen($save_to,"a");
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i], CURLOPT_FILE,$st); // 将爬取的代码写入文件
curl_multi_add_handle ($mh,$conn[$i]);
} // 初始化
do {
curl_multi_exec($mh,$active);
} while ($active); // 执行
foreach ($urls as $i => $url) {
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
} // 结束清理
curl_multi_close($mh);
fclose($st);
  (2)下面的代码和上面类似,只不过这个地方是先把获取到的代码放到一个变量中,然后再将获取到的内容写入到指定的文件中
  $urls = array(
'https://www.jb51.net/',
'http://www.google.com/',
'http://www.example.com/'
);
$save_to='/test.txt'; // 把抓取的代码写入该文件
$st = fopen($save_to,"a");
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i], CURLOPT_HEADER ,0);
curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,true); // 不将爬取代码写到浏览器,而是转化为字符串
curl_multi_add_handle ($mh,$conn[$i]);
}
do {
curl_multi_exec($mh,$active);
} while ($active);
foreach ($urls as $i => $url) {
$data = curl_multi_getcontent($conn[$i]); // 获得爬取的代码字符串
fwrite($st,$data); // 将字符串写入文件
} // 获得数据变量,并写入文件
foreach ($urls as $i => $url) {
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
}
curl_multi_close($mh);
fclose($st);
  (3)以下代码实现使用PHP的Curl Functions实现并发多线程下载文件
  $urls=array(
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip'
);
$save_to='./home/';
$mh=curl_multi_init();
foreach($urls as $i=>$url){
$g=$save_to.basename($url);
if(!is_file($g)){
$conn[$i]=curl_init($url);
$fp[$i]=fopen($g,"w");
curl_setopt($conn[$i],CURLOPT_USERAGENT,"Mozilla/4.0(compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i],CURLOPT_FILE,$fp[$i]);
curl_setopt($conn[$i],CURLOPT_HEADER ,0);
curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,60);
curl_multi_add_handle($mh,$conn[$i]);
}
}
do{
$n=curl_multi_exec($mh,$active);
}while($active);
foreach($urls as $i=>$url){
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
fclose($fp[$i]);
}
curl_multi_close($mh);$urls=array(
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip',
'https://www.jb51.net/5w.zip'
);
$save_to='./home/';
$mh=curl_multi_init();
foreach($urls as $i=>$url){
$g=$save_to.basename($url);
if(!is_file($g)){
$conn[$i]=curl_init($url);
$fp[$i]=fopen($g,"w");
curl_setopt($conn[$i],CURLOPT_USERAGENT,"Mozilla/4.0(compatible; MSIE 7.0; Windows NT 6.0)");
curl_setopt($conn[$i],CURLOPT_FILE,$fp[$i]);
curl_setopt($conn[$i],CURLOPT_HEADER ,0);
curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,60);
curl_multi_add_handle($mh,$conn[$i]);
}
}
do{
$n=curl_multi_exec($mh,$active);
}while($active);
foreach($urls as $i=>$url){
curl_multi_remove_handle($mh,$conn[$i]);
curl_close($conn[$i]);
fclose($fp[$i]);
}
curl_multi_close($mh);
  以上就是本文的全部内容,希望大家喜欢。

curl 抓取网页(使用php的cURL库可以简单和有效地去抓网页。)

网站优化优采云 发表了文章 • 0 个评论 • 62 次浏览 • 2022-02-14 10:15 • 来自相关话题

  curl 抓取网页(使用php的cURL库可以简单和有效地去抓网页。)
  使用php的cURL库可以轻松高效的抓取网页。你只需要运行一个脚本,然后分析你爬取的网页,然后你就可以通过编程方式获取你想要的数据。无论您是想从链接中获取部分数据,还是获取 XML 文件并将其导入数据库,甚至只是获取网页内容,cURL 都是一个强大的 PHP 库。本文主要介绍如何使用这个 PHP 库。
  启用 cURL 设置
  首先,我们必须确定我们的 PHP 是否启用了这个库。您可以使用 php_info() 函数获取此信息。
  ﹤?php
phpinfo();
?﹥
  如果您可以在网页上看到以下输出,则说明 cURL 库已启用。
  如果你看到它,那么你需要设置你的 PHP 并启用这个库。如果你是windows平台下,很简单,你需要改变你的php.ini文件的设置,找到php_curl.dll,取消之前的分号注释。如下:
  //取消下在的注释
extension=php_curl.dll
  如果你在linux下,那么你需要重新编译你的PHP。编辑时需要打开编译参数——在configure命令中添加“--with-curl”参数。
  一个小例子
  如果一切就绪,这是一个小程序:
  ﹤?php
  // 初始化一个 cURL 对象
  $curl = curl_init();
  // 设置需要抓取的网址
  curl_setopt($curl, CURLOPT_URL, '');
  // 设置标题
  curl_setopt($curl, CURLOPT_HEADER, 1);
  // 设置 cURL 参数,是否将结果保存为字符串或输出到屏幕。
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  // 运行cURL,请求网页
  $data = curl_exec($curl);
  // 关闭 URL 请求
  curl_close($curl);
  //显示获取到的数据
  var_dump($data);
  如何发布数据
  上面是爬取网页的代码,下面是POST数据到网页。假设我们有一个处理表单的 URL,该表单接受两个表单字段,一个用于电话号码,一个用于文本消息的文本。
  ﹤?php
$phoneNumber = '13912345678';
$message = 'This message was generated by curl and php';
$curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' .
   urlencode($message) . '&SUBMIT=Send';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);
?﹥
  从上面的程序我们可以看出,使用CURLOPT_POST来设置HTTP协议的POST方法而不是GET方法,然后用CURLOPT_POSTFIELDS设置POST数据。
  关于代理服务器
  以下是如何使用代理服务器的示例。请注意突出显示的代码,代码很简单,我不需要多说。
  ﹤?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$data = curl_exec();
curl_close($ch);
?﹥
  关于 SSL 和 Cookie 查看全部

  curl 抓取网页(使用php的cURL库可以简单和有效地去抓网页。)
  使用php的cURL库可以轻松高效的抓取网页。你只需要运行一个脚本,然后分析你爬取的网页,然后你就可以通过编程方式获取你想要的数据。无论您是想从链接中获取部分数据,还是获取 XML 文件并将其导入数据库,甚至只是获取网页内容,cURL 都是一个强大的 PHP 库。本文主要介绍如何使用这个 PHP 库。
  启用 cURL 设置
  首先,我们必须确定我们的 PHP 是否启用了这个库。您可以使用 php_info() 函数获取此信息。
  ﹤?php
phpinfo();
?﹥
  如果您可以在网页上看到以下输出,则说明 cURL 库已启用。
  如果你看到它,那么你需要设置你的 PHP 并启用这个库。如果你是windows平台下,很简单,你需要改变你的php.ini文件的设置,找到php_curl.dll,取消之前的分号注释。如下:
  //取消下在的注释
extension=php_curl.dll
  如果你在linux下,那么你需要重新编译你的PHP。编辑时需要打开编译参数——在configure命令中添加“--with-curl”参数。
  一个小例子
  如果一切就绪,这是一个小程序:
  ﹤?php
  // 初始化一个 cURL 对象
  $curl = curl_init();
  // 设置需要抓取的网址
  curl_setopt($curl, CURLOPT_URL, '');
  // 设置标题
  curl_setopt($curl, CURLOPT_HEADER, 1);
  // 设置 cURL 参数,是否将结果保存为字符串或输出到屏幕。
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  // 运行cURL,请求网页
  $data = curl_exec($curl);
  // 关闭 URL 请求
  curl_close($curl);
  //显示获取到的数据
  var_dump($data);
  如何发布数据
  上面是爬取网页的代码,下面是POST数据到网页。假设我们有一个处理表单的 URL,该表单接受两个表单字段,一个用于电话号码,一个用于文本消息的文本。
  ﹤?php
$phoneNumber = '13912345678';
$message = 'This message was generated by curl and php';
$curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' .
   urlencode($message) . '&SUBMIT=Send';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);
?﹥
  从上面的程序我们可以看出,使用CURLOPT_POST来设置HTTP协议的POST方法而不是GET方法,然后用CURLOPT_POSTFIELDS设置POST数据。
  关于代理服务器
  以下是如何使用代理服务器的示例。请注意突出显示的代码,代码很简单,我不需要多说。
  ﹤?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$data = curl_exec();
curl_close($ch);
?﹥
  关于 SSL 和 Cookie

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)

网站优化优采云 发表了文章 • 0 个评论 • 60 次浏览 • 2022-02-13 09:27 • 来自相关话题

  curl 抓取网页(和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&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和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&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页( curl远不止前面所说的那些功能,你知道几个?)

网站优化优采云 发表了文章 • 0 个评论 • 43 次浏览 • 2022-02-13 09:23 • 来自相关话题

  curl 抓取网页(
curl远不止前面所说的那些功能,你知道几个?)
  使用说明
  curl命令是一个功能强大的网络工具,可以通过http、ftp等方式下载和上传文件。其实curl远不止上面提到的功能。您可以通过 man curl 阅读手册页以获取更多信息。 wget 是一个类似的工具。
  curl 命令是使用 libcurl 库实现的。 libcurl 库通常在 C 程序中用于处理 HTTP 请求。 curlpp 是 libcurl 的 C++ 包。这些东西可以用在web抓取、网络监控等开发中,curl命令可以帮助解决开发过程中遇到的问题。
  常用参数
  curl命令的参数很多,这里只列出我用过的,尤其是shell脚本中的。
  -A:请随意指定您自己为本次访问声明的浏览器信息
  -b/--cookie cookie 字符串或文件读取位置,使用 option 将最后一个 cookie 信息附加到 http 请求中。
  -c/--cookie-jar 操作完成后将cookies写入该文件
  -C/--continue-在断点处继续
  -d/--data HTTP POST方法传输数据
  -D/--dump-header 将头信息写入该文件
  -F/--form 模拟http表单提交数据
  -v/--verbose 小写的v参数用于打印更多信息,包括发送的请求信息,在调试脚本时特别有用。
  -m/--max-time 指定处理的最大持续时间
  -H/--header 指定请求头参数
  -s/--slent reduce输出信息,如进度
  --connect-timeout 指定尝试连接的最长时间
  -x/--代理
  指定代理服务器地址和端口,默认端口为1080
  -T/--upload-file 指定上传文件路径
  -o/--output 指定输出文件名
  --retry 指定重试次数
  -e/--referer 指定引用地址
  -I/--head 只返回header信息,使用HEAD请求
  -u/--user 设置服务器用户和密码
  -O:根据服务器上的文件名,会自动在本地存在
  -r/--range 从 HTTP/1.1 或 FTP 服务器检索字节范围
  -T/--upload-file 上传文件
  使用示例
  1、抓取页面内容到文件中
  [root@xi mytest]# curl -o home.html -- 将百度首页的内容抓取到home.html中
  [root@xi mytest]#curl -o #2_#1.jpg~{A,B}/[001-201].JPG
  因为A/B下的文件名都是001、002...、201,所以下载的文件同名,所以自定义下载的文件名变成这样: 原文:A/00< @1.JPG ---> 下载后:001-A.JPG 原文:B/001.JPG ---> 下载后:001-B.JPG
  2、使用-O(大写),后面的url必须特定于某个文件,否则不会被抓到。你也可以使用正则表达式来抓取东西
  [root@xi mytest]# curl -O
  结果如下:
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 1575 100 1575 0 0 14940 0 --:--:-- --:--:-- --:--:-- 1538k
  在当前执行目录中会生成一张bdlogo.gif的图片。
  [root@xi mytest]# curl -O[1-10].JPG --下载屏幕1.jpg~screen10.jpg
  3、模拟表单信息、模拟登录、保存cookie信息
  [root@xi mytest]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=******
  4、模拟表单信息、模拟登录、保存表头信息
  [root@xi mytest]# curl -D ./cookie_D.txt -F log=aaaa -F pwd=******
  由
  生成的cookie
  -c(小写)与-D中的cookie不同。
  5、使用cookie文件
  [root@xi mytest]# curl -b ./cookie_c.txt
  6、从断点恢复,-C(大写)
  [root@xi mytest]# curl -C -O
  7、发送数据,最好使用登录页面测试,因为你传值后,curl会抓取数据回来,可以查看是否传值成功
  [root@xi mytest]# curl -d log=aaaa
  8、显示爬取错误,下面的例子清楚的显示出来。
  [root@xi mytest]# curl -f
  curl:(22)请求的URL返回错误:404
  [root@xi mytest]# curl
  404,未找到
  9。伪造源地址,有的网站会判断并请求源地址,防止盗链。
  [root@xi mytest]# curl -e:///wp-login.php
  10、当我们经常用curl做别人的事情的时候,人家会屏蔽你的IP,这个时候我们可以使用代理
  [root@xi mytest]# curl -x 24.10.28.84:32779 -o home.html
  11,对于较大的东西,我们可以分段下载
  [root@xi mytest]# curl -r 0-100 -o img.part1
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 101 100 101 0 0 105 0 --:--:-- --:--:-- --:--:-- 0
  [root@xi mytest]# curl -r 100-200 -o img.part2
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 101 100 101 0 0 57 0 0:00:01 0:00:01 --:--:-- 0
  [root@xi mytest]# curl -r 200- -o img.part3
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 104k 100 104k 0 0 52793 0 0:00:02 0:00:02 --:--:-- 88961
  [root@xi mytest]# ls |grep part | xargs du -sh
  4.0K one.part1
  112K 三.part3
  4.0K two.part2
  使用的时候,cat一下就可以了,cat img.part* >img.jpg
  12,不会显示下载进度信息
  [root@xi mytest]# curl -s -o aaa.jpg
  13、显示下载进度条
  [root@xi mytest]# curl -0(使用http1.0协议的请求)
  ############################################## # ######################### 100.0%
  14、通过ftp下载文件
  [xifj@Xi ~]$ curl -u 用户名:密码 -O
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  101 1934 101 1934 0 0 3184 0 --:--:-- --:--:-- --:--:-- 7136
  [xifj@Xi ~]$ curl -u 用户名:密码 -O
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  101 1934 101 1934 0 0 3184 0 --:--:-- --:--:-- --:--:-- 7136
  或者使用下面的方法
  [xifj@Xi ~]$ curl -O ftp://username:password@ip:port/demo/curtain/bbstudy_files/style.css
  [xifj@Xi ~]$ curl -O ftp://username:password@ip:port/demo/curtain/bbstudy_files/style.css
  15、通过ftp上传
  [xifj@Xi ~]$ curl -T test.sql ftp://username:password@ip:port/demo/curtain/bbstudy_files/
  [xifj@Xi ~]$ curl -T test.sql ftp://username:password@ip:port/demo/curtain/bbstudy_files/
  15、模拟浏览器头部
  [xifj@Xi ~]$ curl -A "Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.0)" -x 12< @3.45.67.89:1080 -o page.html -D cookie0001.txt
  16,PUT,GET,POST
  比如curl -T localfile~zz/abc.cgi,此时使用的协议是HTTP PUT方式
  刚才说到PUT,我自然会想到其他几种方法——GET和POST。 查看全部

  curl 抓取网页(
curl远不止前面所说的那些功能,你知道几个?)
  使用说明
  curl命令是一个功能强大的网络工具,可以通过http、ftp等方式下载和上传文件。其实curl远不止上面提到的功能。您可以通过 man curl 阅读手册页以获取更多信息。 wget 是一个类似的工具。
  curl 命令是使用 libcurl 库实现的。 libcurl 库通常在 C 程序中用于处理 HTTP 请求。 curlpp 是 libcurl 的 C++ 包。这些东西可以用在web抓取、网络监控等开发中,curl命令可以帮助解决开发过程中遇到的问题。
  常用参数
  curl命令的参数很多,这里只列出我用过的,尤其是shell脚本中的。
  -A:请随意指定您自己为本次访问声明的浏览器信息
  -b/--cookie cookie 字符串或文件读取位置,使用 option 将最后一个 cookie 信息附加到 http 请求中。
  -c/--cookie-jar 操作完成后将cookies写入该文件
  -C/--continue-在断点处继续
  -d/--data HTTP POST方法传输数据
  -D/--dump-header 将头信息写入该文件
  -F/--form 模拟http表单提交数据
  -v/--verbose 小写的v参数用于打印更多信息,包括发送的请求信息,在调试脚本时特别有用。
  -m/--max-time 指定处理的最大持续时间
  -H/--header 指定请求头参数
  -s/--slent reduce输出信息,如进度
  --connect-timeout 指定尝试连接的最长时间
  -x/--代理
  指定代理服务器地址和端口,默认端口为1080
  -T/--upload-file 指定上传文件路径
  -o/--output 指定输出文件名
  --retry 指定重试次数
  -e/--referer 指定引用地址
  -I/--head 只返回header信息,使用HEAD请求
  -u/--user 设置服务器用户和密码
  -O:根据服务器上的文件名,会自动在本地存在
  -r/--range 从 HTTP/1.1 或 FTP 服务器检索字节范围
  -T/--upload-file 上传文件
  使用示例
  1、抓取页面内容到文件中
  [root@xi mytest]# curl -o home.html -- 将百度首页的内容抓取到home.html中
  [root@xi mytest]#curl -o #2_#1.jpg~{A,B}/[001-201].JPG
  因为A/B下的文件名都是001、002...、201,所以下载的文件同名,所以自定义下载的文件名变成这样: 原文:A/00< @1.JPG ---> 下载后:001-A.JPG 原文:B/001.JPG ---> 下载后:001-B.JPG
  2、使用-O(大写),后面的url必须特定于某个文件,否则不会被抓到。你也可以使用正则表达式来抓取东西
  [root@xi mytest]# curl -O
  结果如下:
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 1575 100 1575 0 0 14940 0 --:--:-- --:--:-- --:--:-- 1538k
  在当前执行目录中会生成一张bdlogo.gif的图片。
  [root@xi mytest]# curl -O[1-10].JPG --下载屏幕1.jpg~screen10.jpg
  3、模拟表单信息、模拟登录、保存cookie信息
  [root@xi mytest]# curl -c ./cookie_c.txt -F log=aaaa -F pwd=******
  4、模拟表单信息、模拟登录、保存表头信息
  [root@xi mytest]# curl -D ./cookie_D.txt -F log=aaaa -F pwd=******
  由
  生成的cookie
  -c(小写)与-D中的cookie不同。
  5、使用cookie文件
  [root@xi mytest]# curl -b ./cookie_c.txt
  6、从断点恢复,-C(大写)
  [root@xi mytest]# curl -C -O
  7、发送数据,最好使用登录页面测试,因为你传值后,curl会抓取数据回来,可以查看是否传值成功
  [root@xi mytest]# curl -d log=aaaa
  8、显示爬取错误,下面的例子清楚的显示出来。
  [root@xi mytest]# curl -f
  curl:(22)请求的URL返回错误:404
  [root@xi mytest]# curl
  404,未找到
  9。伪造源地址,有的网站会判断并请求源地址,防止盗链。
  [root@xi mytest]# curl -e:///wp-login.php
  10、当我们经常用curl做别人的事情的时候,人家会屏蔽你的IP,这个时候我们可以使用代理
  [root@xi mytest]# curl -x 24.10.28.84:32779 -o home.html
  11,对于较大的东西,我们可以分段下载
  [root@xi mytest]# curl -r 0-100 -o img.part1
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 101 100 101 0 0 105 0 --:--:-- --:--:-- --:--:-- 0
  [root@xi mytest]# curl -r 100-200 -o img.part2
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 101 100 101 0 0 57 0 0:00:01 0:00:01 --:--:-- 0
  [root@xi mytest]# curl -r 200- -o img.part3
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  100 104k 100 104k 0 0 52793 0 0:00:02 0:00:02 --:--:-- 88961
  [root@xi mytest]# ls |grep part | xargs du -sh
  4.0K one.part1
  112K 三.part3
  4.0K two.part2
  使用的时候,cat一下就可以了,cat img.part* >img.jpg
  12,不会显示下载进度信息
  [root@xi mytest]# curl -s -o aaa.jpg
  13、显示下载进度条
  [root@xi mytest]# curl -0(使用http1.0协议的请求)
  ############################################## # ######################### 100.0%
  14、通过ftp下载文件
  [xifj@Xi ~]$ curl -u 用户名:密码 -O
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  101 1934 101 1934 0 0 3184 0 --:--:-- --:--:-- --:--:-- 7136
  [xifj@Xi ~]$ curl -u 用户名:密码 -O
  % Total % Received % Xferd 平均速度 时间 时间 时间 当前
  Dload 上传总花费的左速度
  101 1934 101 1934 0 0 3184 0 --:--:-- --:--:-- --:--:-- 7136
  或者使用下面的方法
  [xifj@Xi ~]$ curl -O ftp://username:password@ip:port/demo/curtain/bbstudy_files/style.css
  [xifj@Xi ~]$ curl -O ftp://username:password@ip:port/demo/curtain/bbstudy_files/style.css
  15、通过ftp上传
  [xifj@Xi ~]$ curl -T test.sql ftp://username:password@ip:port/demo/curtain/bbstudy_files/
  [xifj@Xi ~]$ curl -T test.sql ftp://username:password@ip:port/demo/curtain/bbstudy_files/
  15、模拟浏览器头部
  [xifj@Xi ~]$ curl -A "Mozilla/4.0 (兼容; MSIE 6.0; Windows NT 5.0)" -x 12< @3.45.67.89:1080 -o page.html -D cookie0001.txt
  16,PUT,GET,POST
  比如curl -T localfile~zz/abc.cgi,此时使用的协议是HTTP PUT方式
  刚才说到PUT,我自然会想到其他几种方法——GET和POST。

curl 抓取网页(和wget下载安装下载安装1、Ubuntu平台wget命令安装)

网站优化优采云 发表了文章 • 0 个评论 • 71 次浏览 • 2022-02-12 11:17 • 来自相关话题

  curl 抓取网页(和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下载地址:curlDownload
  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-obaidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget -Obaidu_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&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和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下载地址:curlDownload
  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-obaidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget -Obaidu_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&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别 )

网站优化优采云 发表了文章 • 0 个评论 • 57 次浏览 • 2022-02-11 12:19 • 来自相关话题

  curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别
)
  分块传输编码
  分块编码更改消息正文,以便消息正文以块的形式发送。每个块都有自己的大小指示符,紧跟在所有块之后的收录实体头字段的可选尾部。这允许发送者动态生成内容并携带有用的信息,接收者可以使用这些信息来确定是否收到了消息。
  4、curl 在指定要下载的链接时可以支持 URL 序列或集合,而 wget 不能。
  5、wget 支持递归下载,而 curl 不支持。
  二、网站抓取实例
  抓取网页有两种方式:url URL和proxy代理。以百度首页的抓取为例。
  1、url URL方法爬取
  (1)curl下载百度首页内容,保存在baidu_html文件中
  curl http://www.baidu.com/ -o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget http://www.baidu.com/ -O baidu_html
  有时,由于网络速度/数据包丢失/服务器停机等原因,网页暂时无法成功下载。这时候,你可能需要尝试多次发送连接来请求服务器的响应;如果多次还是没有响应,那么就可以确认服务器有问题了。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time 60 http://www.baidu.com/ -o baidu_html
  注意:--retry 表示重试次数;--retry-delay 表示两次重试之间的时间间隔(单位:秒);--retry-max-time 表示超时时间。
  curl -y 60 -Y 1 -m 60 http://www.baidu.com -o baidu_html
  注:-y表示测试网速的时间;-Y 表示停止传输速度的限制(单位:字节/秒);-m 表示最大连接时间,超过连接会自动断开连接并放弃连接
  (2)wget 尝试连接多次
  wget -t 10 -w 60 -T 30 http://www.baidu.com/ -O baidu_html
  注意:-t(-tries)表示重试次数;-w 表示两次重试的时间间隔(单位:秒);-T 表示链接超时时间。
  2、代理代理捕获
  代理下载是通过连接中间服务器间接下载url网页的过程,而不是直接连接网站服务器下载的url。这里代理使用 127.0.0.1:8080 进行测试。
  (1)curl通过代理爬取百度首页
  curl -x 127.0.0.1:8080 -o baidu_html http://www.baidu.com
  注意:-x表示代理服务器(ip:port),常用端口有80、8080、8086、8888、3128等,默认为80,即curl首先连接代理服务器127. 0.0.1:8080,然后通过它下载百度主页,最后127.0.0.1:8080把下载的百度主页传给卷曲到当地
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:
  http_proxy=127.0.0.1:8080
  然后输入wget命令爬取网页:
  wget http://www.baidu.com -O baidu_html 查看全部

  curl 抓取网页(块传输编码(ChunkedTransfer)改变消息主体与实体主体的区别
)
  分块传输编码
  分块编码更改消息正文,以便消息正文以块的形式发送。每个块都有自己的大小指示符,紧跟在所有块之后的收录实体头字段的可选尾部。这允许发送者动态生成内容并携带有用的信息,接收者可以使用这些信息来确定是否收到了消息。
  4、curl 在指定要下载的链接时可以支持 URL 序列或集合,而 wget 不能。
  5、wget 支持递归下载,而 curl 不支持。
  二、网站抓取实例
  抓取网页有两种方式:url URL和proxy代理。以百度首页的抓取为例。
  1、url URL方法爬取
  (1)curl下载百度首页内容,保存在baidu_html文件中
  curl http://www.baidu.com/ -o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget http://www.baidu.com/ -O baidu_html
  有时,由于网络速度/数据包丢失/服务器停机等原因,网页暂时无法成功下载。这时候,你可能需要尝试多次发送连接来请求服务器的响应;如果多次还是没有响应,那么就可以确认服务器有问题了。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time 60 http://www.baidu.com/ -o baidu_html
  注意:--retry 表示重试次数;--retry-delay 表示两次重试之间的时间间隔(单位:秒);--retry-max-time 表示超时时间。
  curl -y 60 -Y 1 -m 60 http://www.baidu.com -o baidu_html
  注:-y表示测试网速的时间;-Y 表示停止传输速度的限制(单位:字节/秒);-m 表示最大连接时间,超过连接会自动断开连接并放弃连接
  (2)wget 尝试连接多次
  wget -t 10 -w 60 -T 30 http://www.baidu.com/ -O baidu_html
  注意:-t(-tries)表示重试次数;-w 表示两次重试的时间间隔(单位:秒);-T 表示链接超时时间。
  2、代理代理捕获
  代理下载是通过连接中间服务器间接下载url网页的过程,而不是直接连接网站服务器下载的url。这里代理使用 127.0.0.1:8080 进行测试。
  (1)curl通过代理爬取百度首页
  curl -x 127.0.0.1:8080 -o baidu_html http://www.baidu.com
  注意:-x表示代理服务器(ip:port),常用端口有80、8080、8086、8888、3128等,默认为80,即curl首先连接代理服务器127. 0.0.1:8080,然后通过它下载百度主页,最后127.0.0.1:8080把下载的百度主页传给卷曲到当地
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:
  http_proxy=127.0.0.1:8080
  然后输入wget命令爬取网页:
  wget http://www.baidu.com -O baidu_html

curl 抓取网页(php中常用都实现更复杂的传输功能(post传输方式) )

网站优化优采云 发表了文章 • 0 个评论 • 42 次浏览 • 2022-02-01 10:03 • 来自相关话题

  curl 抓取网页(php中常用都实现更复杂的传输功能(post传输方式)
)
  CURL 是一个文件传输工具,它使用 URL 语法在命令行模式下工作。它支持许多协议。支持认证功能。比较复杂的传输函数一般用php实现。
  实现的功能:
  1、远程访问和采集内容
  2、实现PHP网页版FTP上传下载
  3、实现模拟登录:去一个邮件系统,curl可以模拟cookies
  4、 实现接口对接(API)、数据传输等:通过平台发送短信,捕获并传输传输的信息。
  5、实现模拟cookies等:有些属性只能在登录状态下操作。
  如何使用CURL函数:
  PHP默认不支持CURL,需要在php.ini中开启该功能
  ;extension=php_curl.dll 去掉分号
  1整个操作的第一步是使用cur_init()函数进行初始化
  $curl = curl_init(‘www.gaodaima.com&#039;)
  3.设置完成后,执行事务 curl_exec($curl);2.使用 curl_setopt() 函数设置选项。
  4 最后关闭 curl_close();
  使用PHP CURL实现传输和获取功能(后传方式):获取远程网页数据
  $user = "admin";$pass = "admin";$curlPost= "user=$user&pass=$pass";$ch = curl_init(); //初始化一个CURL对象curl_setopt($ch, CURLOPT_URL,"http://localhost/edu/login.php");//设置你所需要抓取的URLcurl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//设置curl参数,要求结果是否输出到屏幕上,为true的时候是不返回到网页中假设上面的0换成1的话,那么接下来的$data就需要echo一下。curl_setopt($ch, CURLOPT_POST, 1);//post提交curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);$data = curl_exec($ch);//运行curl,请求网页。curl_close($ch);[/code]
  实现远程模拟登录最基本的部分。
  curl还需要配置用户名和密码,但是被浏览器隐藏了。
  ================================================ === =================================\
  curl 模拟登录
  模拟登录:即使不登录php100论坛,也可以查看相应信息。
  分析登录字段->登录后保留cookie->读取cookie并跳转到相关页面->抓取次数
  1、模拟登录后创建文件保存cookie内容
  2、通过读取生成的cookie内容模拟用户登录状态
  3、去相关页面获取你需要的东西
  tempname 创建一个临时文件
  tempnam() 函数创建一个具有唯一文件名的临时文件。如果成功,该函数返回新的临时文件名。失败时返回 false。
  tempnam(目录,前缀)
  参数说明
  dir 必需。指定创建临时文件的目录。
  前缀是必需的。指定文件名的开头。
  相当于,fopen  fwirte  fclose
  它可以返回一个布尔值。使用第三方登录你的QQ和msn是非常危险的,因为它可以记录你的登录状态,并窃取你的用户名和密码。
  使用CURL模拟登录PHP100论坛
  1、分析输入框字段名和登录所需字段个数
  2、保存cookie模拟登录,获取会员金币数量
  代码:
  //初始化一个 cURL 对象$curl = curl_init();//设置你需要抓取的URLcurl_setopt($curl, CURLOPT_URL," http://www.baidu.com ");//设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//运行cURL,请求网页$data = curl_exec($curl);//关闭URL请求curl_close($curl);$user = "admin";$pass = "admin100";$curlPost= "user=$user&pass=$pa本文来源gaodai#ma#com搞*!代#%^码$网!搞代gaodaima码ss";$ch = curl_init();curl_setopt($ch, CURLOPT_URL," http://localhost/curl/login.php ");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);$data = curl_exec($ch);curl_close($ch);?>if($_POST[&#039;user&#039;]=="admin"){ echo"";}else{ echo"";}//print_r($_POST);?> 查看全部

  curl 抓取网页(php中常用都实现更复杂的传输功能(post传输方式)
)
  CURL 是一个文件传输工具,它使用 URL 语法在命令行模式下工作。它支持许多协议。支持认证功能。比较复杂的传输函数一般用php实现。
  实现的功能:
  1、远程访问和采集内容
  2、实现PHP网页版FTP上传下载
  3、实现模拟登录:去一个邮件系统,curl可以模拟cookies
  4、 实现接口对接(API)、数据传输等:通过平台发送短信,捕获并传输传输的信息。
  5、实现模拟cookies等:有些属性只能在登录状态下操作。
  如何使用CURL函数:
  PHP默认不支持CURL,需要在php.ini中开启该功能
  ;extension=php_curl.dll 去掉分号
  1整个操作的第一步是使用cur_init()函数进行初始化
  $curl = curl_init(‘www.gaodaima.com&#039;)
  3.设置完成后,执行事务 curl_exec($curl);2.使用 curl_setopt() 函数设置选项。
  4 最后关闭 curl_close();
  使用PHP CURL实现传输和获取功能(后传方式):获取远程网页数据
  $user = "admin";$pass = "admin";$curlPost= "user=$user&pass=$pass";$ch = curl_init(); //初始化一个CURL对象curl_setopt($ch, CURLOPT_URL,"http://localhost/edu/login.php";);//设置你所需要抓取的URLcurl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//设置curl参数,要求结果是否输出到屏幕上,为true的时候是不返回到网页中假设上面的0换成1的话,那么接下来的$data就需要echo一下。curl_setopt($ch, CURLOPT_POST, 1);//post提交curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);$data = curl_exec($ch);//运行curl,请求网页。curl_close($ch);[/code]
  实现远程模拟登录最基本的部分。
  curl还需要配置用户名和密码,但是被浏览器隐藏了。
  ================================================ === =================================\
  curl 模拟登录
  模拟登录:即使不登录php100论坛,也可以查看相应信息。
  分析登录字段->登录后保留cookie->读取cookie并跳转到相关页面->抓取次数
  1、模拟登录后创建文件保存cookie内容
  2、通过读取生成的cookie内容模拟用户登录状态
  3、去相关页面获取你需要的东西
  tempname 创建一个临时文件
  tempnam() 函数创建一个具有唯一文件名的临时文件。如果成功,该函数返回新的临时文件名。失败时返回 false。
  tempnam(目录,前缀)
  参数说明
  dir 必需。指定创建临时文件的目录。
  前缀是必需的。指定文件名的开头。
  相当于,fopen  fwirte  fclose
  它可以返回一个布尔值。使用第三方登录你的QQ和msn是非常危险的,因为它可以记录你的登录状态,并窃取你的用户名和密码。
  使用CURL模拟登录PHP100论坛
  1、分析输入框字段名和登录所需字段个数
  2、保存cookie模拟登录,获取会员金币数量
  代码:
  //初始化一个 cURL 对象$curl = curl_init();//设置你需要抓取的URLcurl_setopt($curl, CURLOPT_URL," http://www.baidu.com ");//设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//运行cURL,请求网页$data = curl_exec($curl);//关闭URL请求curl_close($curl);$user = "admin";$pass = "admin100";$curlPost= "user=$user&pass=$pa本文来源gaodai#ma#com搞*!代#%^码$网!搞代gaodaima码ss";$ch = curl_init();curl_setopt($ch, CURLOPT_URL," http://localhost/curl/login.php ");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);$data = curl_exec($ch);curl_close($ch);?>if($_POST[&#039;user&#039;]=="admin"){ echo"";}else{ echo"";}//print_r($_POST);?>

curl 抓取网页( PHP扩展完成一个请求的抓取网页内容请求步骤介绍 )

网站优化优采云 发表了文章 • 0 个评论 • 44 次浏览 • 2022-01-31 11:07 • 来自相关话题

  curl 抓取网页(
PHP扩展完成一个请求的抓取网页内容请求步骤介绍
)
  curl - 抓取网络数据
  时间:2019-08-09
  本文章为大家介绍curl-爬取网页数据,主要包括curl-爬取网页数据使用实例、应用技巧、基础知识点总结及注意事项,具有一定的参考价值,需要的朋友们可以参考一下。
  使用 CURL 的 PHP 扩展发送 HTTP 请求一般有以下步骤:
  1、初始化连接句柄;
  2、配置参数;
  3、执行并得到结果;
  4、释放 CURL 连接句柄。
  下面是curl模拟一个get请求,抓取网页内容:
  $url="http://book.zongheng.com/chapt ... 3B%3B <br /><br />
  //1.初始化curl
$ch=curl_init($url);//第一步,我们通过函数curl_init()创建一个新的curl会话
//2.设置传输选项(向服务器端发送请求)
//curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//3.执行curl请求(接收服务器端发送的数据)
$output=curl_exec($ch);
//4.关闭curl
curl_close($ch);
//匹配标题 第一章 惊蛰
preg_match_all("/(.*?)/", $output, $title);
//匹配p标签段落内容 <p>二月二,龙抬头。
preg_match_all("/
  (.*?)/", $output, $match);
//. 是任意字符 可以匹配任何单个字符,
//.*? 表示匹配任意字符到下一个符合条件的字符
$a=$match[0];
echo implode( ' ',$a); <br /><br /> 查看全部

  curl 抓取网页(
PHP扩展完成一个请求的抓取网页内容请求步骤介绍
)
  curl - 抓取网络数据
  时间:2019-08-09
  本文章为大家介绍curl-爬取网页数据,主要包括curl-爬取网页数据使用实例、应用技巧、基础知识点总结及注意事项,具有一定的参考价值,需要的朋友们可以参考一下。
  使用 CURL 的 PHP 扩展发送 HTTP 请求一般有以下步骤:
  1、初始化连接句柄;
  2、配置参数;
  3、执行并得到结果;
  4、释放 CURL 连接句柄。
  下面是curl模拟一个get请求,抓取网页内容:
  $url="http://book.zongheng.com/chapt ... 3B%3B <br /><br />
  //1.初始化curl
$ch=curl_init($url);//第一步,我们通过函数curl_init()创建一个新的curl会话
//2.设置传输选项(向服务器端发送请求)
//curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//3.执行curl请求(接收服务器端发送的数据)
$output=curl_exec($ch);
//4.关闭curl
curl_close($ch);
//匹配标题 第一章 惊蛰
preg_match_all("/(.*?)/", $output, $title);
//匹配p标签段落内容 <p>二月二,龙抬头。
preg_match_all("/
  (.*?)/", $output, $match);
//. 是任意字符 可以匹配任何单个字符,
//.*? 表示匹配任意字符到下一个符合条件的字符
$a=$match[0];
echo implode( ' ',$a); <br /><br />

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

网站优化优采云 发表了文章 • 0 个评论 • 51 次浏览 • 2022-01-31 10:13 • 来自相关话题

  curl 抓取网页(curl和wget抓取实例抓取网页(1)_html文件)
  curl 和 wget 抓取实例
  抓取网页主要有两种方式:url URL和proxy代理
  1、 url 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,中间是 8080 冒号“:”隔开形成套接字)
  (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,然后通过21 8.107.21.252:8080下载百度首页,最后218.107.21.252:8080通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(curl和wget抓取实例抓取网页(1)_html文件)
  curl 和 wget 抓取实例
  抓取网页主要有两种方式:url URL和proxy代理
  1、 url 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,中间是 8080 冒号“:”隔开形成套接字)
  (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,然后通过21 8.107.21.252:8080下载百度首页,最后218.107.21.252:8080通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)

网站优化优采云 发表了文章 • 0 个评论 • 65 次浏览 • 2022-01-30 20:09 • 来自相关话题

  curl 抓取网页(和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 -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,中间是 8080 冒号“:”隔开形成套接字)
  (1)curl通过代理爬取百度首页
  curl -x 218.107.21.252:8080 -o aaaaa(常用端口有80、8080、8086、8888、3128等,默认8&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和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 -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,中间是 8080 冒号“:”隔开形成套接字)
  (1)curl通过代理爬取百度首页
  curl -x 218.107.21.252:8080 -o aaaaa(常用端口有80、8080、8086、8888、3128等,默认8&lt; @0)
  注:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:sudoapt)

网站优化优采云 发表了文章 • 0 个评论 • 66 次浏览 • 2022-01-28 08:01 • 来自相关话题

  curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:sudoapt)
  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 /-o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget -O baidu_html2
  有时,由于网络速度/数据包丢失/服务器停机等原因,网页暂时无法成功下载。
  这时候可能需要尝试多次发送连接来请求服务器的响应;如果多次仍然没有响应,则可以确认服务器有问题。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time60 -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等,默认80)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget是通过代理下载的,和curl不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd~)下新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:sudoapt)
  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 /-o baidu_html
  (2)wget下载百度首页内容,保存在baidu_html文件中
  wget -O baidu_html2
  有时,由于网络速度/数据包丢失/服务器停机等原因,网页暂时无法成功下载。
  这时候可能需要尝试多次发送连接来请求服务器的响应;如果多次仍然没有响应,则可以确认服务器有问题。
  (1)curl 尝试连接多次
  curl --retry 10 --retry-delay 60 --retry-max-time60 -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等,默认80)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget是通过代理下载的,和curl不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd~)下新建wget配置文件(.wgetrc),进入代理配置:

curl 抓取网页(运用PHP的cURL库可以基本和有效地去抓网页。)

网站优化优采云 发表了文章 • 0 个评论 • 62 次浏览 • 2022-01-27 15:25 • 来自相关话题

  curl 抓取网页(运用PHP的cURL库可以基本和有效地去抓网页。)
  使用 PHP 的 cURL 库可以基本有效的抓取网页。你只需要运行一个脚本,然后分析你爬取的网页,然后你就可以通过编程方式获取你想要的数据。无论您是想从链接中获取部分数据,还是获取 XML 文件并将其导入数据库,甚至是基本的 Web 内容获取,cURL 都是一个强大的 PHP 库。本文主要介绍如何使用这个 PHP 库。
  启用 cURL 配置
  首先,我们要确保我们的 PHP 可以启用这个库,你可以使用 php_info() 函数来获取这些信息。
  如果可以在网页上看到上面的输入,则说明 cURL 库已启用。
  如果你看到它,那么你需要配置你的 PHP 并启用这个库。如果你是在windows平台,那是很基础的,你需要改变你的php.ini文件的配置,找到php_curl.dll,去掉分号注释。如下:
  //撤消下一条评论
  扩展=php_curl.dll
  如果你在 Linux 上,那么你需要重新编译你的 PHP。编辑时需要打开编译参数——在configure命令中添加“--with-curl”参数。
  一个小例子
  如果一切就绪,以上就是一个小例程:
  如何发布数据
  上面是爬取网页的代码,上面是POST数据到网页。假设我们有一个处理表单的 URL,该表单接受两个表单字段,一个用于电话号码,一个用于文本消息的文本。 查看全部

  curl 抓取网页(运用PHP的cURL库可以基本和有效地去抓网页。)
  使用 PHP 的 cURL 库可以基本有效的抓取网页。你只需要运行一个脚本,然后分析你爬取的网页,然后你就可以通过编程方式获取你想要的数据。无论您是想从链接中获取部分数据,还是获取 XML 文件并将其导入数据库,甚至是基本的 Web 内容获取,cURL 都是一个强大的 PHP 库。本文主要介绍如何使用这个 PHP 库。
  启用 cURL 配置
  首先,我们要确保我们的 PHP 可以启用这个库,你可以使用 php_info() 函数来获取这些信息。
  如果可以在网页上看到上面的输入,则说明 cURL 库已启用。
  如果你看到它,那么你需要配置你的 PHP 并启用这个库。如果你是在windows平台,那是很基础的,你需要改变你的php.ini文件的配置,找到php_curl.dll,去掉分号注释。如下:
  //撤消下一条评论
  扩展=php_curl.dll
  如果你在 Linux 上,那么你需要重新编译你的 PHP。编辑时需要打开编译参数——在configure命令中添加“--with-curl”参数。
  一个小例子
  如果一切就绪,以上就是一个小例程:
  如何发布数据
  上面是爬取网页的代码,上面是POST数据到网页。假设我们有一个处理表单的 URL,该表单接受两个表单字段,一个用于电话号码,一个用于文本消息的文本。

curl 抓取网页(和wget下载安装1、Ubuntu平台wget命令安装:百度首页为例)

网站优化优采云 发表了文章 • 0 个评论 • 58 次浏览 • 2022-01-23 06:13 • 来自相关话题

  curl 抓取网页(和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&lt; @0)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置: 查看全部

  curl 抓取网页(和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&lt; @0)
  注意:-x表示代理服务器(ip:port),即curl先连接代理服务器218.107.21.252:8080,然后通过21&lt; @k31@ &gt;107.21.252:8080 下载百度首页,最后218.107.21.252:8080 通过下载百度主页 curl 到本地(curl 不是直接连接百度服务器下载主页,而是通过中介代理)
  (2)wget通过代理爬取百度首页
  wget 通过代理下载,和 curl 不一样。需要先设置代理服务器的http_proxy=ip:port。
  以ubuntu为例,在当前用户目录(cd ~),新建wget配置文件(.wgetrc),进入代理配置:

官方客服QQ群

微信人工客服

QQ人工客服


线