CURL抓取页面

cURL的基本原理

curl是利用URL语法在命令行方式下工作的开源文件传输工具,他能够从互联网上获得各种各样的网络资源。简单来说,curl就是抓取页面的升级版。


1

2

3

4

5

6

7

8

9

10

11

12

<?php

 //1.初始化,创建一个新cURL资源

 $ch = curl_init();

//2.设置URL和相应的选项

 curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com/");

 

curl_setopt($ch, CURLOPT_HEADER, 0);

//3.抓取URL并把它传递给浏览器

 curl_exec($ch);

//4.关闭cURL资源,并且释放系统资源

 curl_close($ch);

?>

  

cURL爬取页面之爬取网页信息并替换


1

2

3

4

5

6

7

8

<?php

$curlobj = curl_init();          // 初始化

curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");       // 设置访问网页的URL

curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);         // 执行之后不直接打印出来

$output=curl_exec($curlobj);   // 执行

curl_close($curlobj);        // 关闭cURL

echo str_replace("百度","php",$output);

?>

  

cURL爬取页面之获取天气


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<?php

header("Content-Type:text/html;   charset=utf-8");

$data ‘theCityName=北京‘;

$curlobj = curl_init();

curl_setopt($curlobj, CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");

curl_setopt($curlobj, CURLOPT_USERAGENT, "user-agent:Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0");

curl_setopt($curlobj, CURLOPT_HEADER, 0);          //启用时会将头文件的信息作为数据流输出。这里不启用

curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);  //如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE

curl_setopt($curlobj, CURLOPT_POST, 1);            //如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。

curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);  //需要POST的数据

curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded;  

                                                    charset=utf-8", "Content-length: ".strlen($data)));

$rtn = curl_exec($curlobj);

if(!curl_errno($curlobj)){

    // $info = curl_getinfo($curlobj);

    // print_r($info);

    echo $rtn;

else {

    echo ‘Curl error: ‘ . curl_error($curlobj);

}

curl_close($curlobj);

?>

原贴地址:https://www.cnblogs.com/laomao666/p/10952235.html

原文地址:https://www.cnblogs.com/nineleopard/p/11629916.html

时间: 2024-10-11 23:35:13

CURL抓取页面的相关文章

好用的 curl 抓取 页面的封装函数

由于经常使用php curl 抓取页面的内容,在此mark 平时自己封装的 curl函数,(其实 现在也开始用 Python 来爬了~ ^-^) /** * 封装curl方法 * @author FredGui * @param string $url 必选 接口地址 * @param string $post 可选 如果是post访问填写post参数数组 * @param int $timeout 可选 超时时间 * @param string $cookie * @param int $de

curl抓取页面时遇到重定向的解决方法

用php的curl抓取网页遇到了问题,为阐述方便,将代码简化如下: [php] view plaincopy <?php function curlGet($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, true); return curl_exec($ch);

curl 抓取页面信息

<?php // 1. 初始化 $ch = curl_init(); // 2. 设置选项,包括URL curl_setopt($ch, CURLOPT_URL, "www"); curl_setopt($ch, CURLOPT_HEADER, 0); //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //加上这一行,则返回的内容作为变量储存,而不是直接输出 curl_setopt($ch, CURLOPT_HTTPHEADER, ar

php中curl抓取页面

function curl($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5000); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWe

curl只能抓取页面的部分内容的原因

核心提示:先列出 HessianPHP 的错误提示: CURL transport error: transfer closed with outstanding read data remaining 基础知识背景: 1)"Expect: 100-continue"的来龙去脉: HTTP/1.1 协议里设计100 (Continue) HTTP 状态码的的目的是,在客 ... 先列出 HessianPHP 的错误提示: CURL transport error: transfer c

php抓取页面的几种方式

在做一些天气预报或者RSS订阅的程序时,往往 需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址, 然后得到html源代码或者xml数据,得到数据我们不能直接输出,往往需要对内容进行提取,然后再进行格式化,以更加友好的方式显现出来. 下面简单说一下php抓取页面的几种方法及原理: 一. PHP抓取页面的主要方法: 1. file()函数 2. file_get_contents()函数 3. fopen()->fread()->fclose()模式 4

用PHP抓取页面并分析

在做抓取前,记得把php.ini中的max_execution_time设置的大点,不然会报错的. 一.用Snoopy.class.php抓取页面 一个挺萌的类名.功能也很强大,用来模拟浏览器的功能,可以获取网页内容,发送表单等. 1)我现在要抓取一个网站的列表页的内容,我要抓取的是全国的医院信息内容,如下图: 2)我很自然的将URL地址复制下来,用Snoopy类来抓取前10页的页面内容,而且将内容放到本地来,在本地建立html文件,等下用于分析. $snoopy=new Snoopy(); /

PHP cURL抓取网上图片

cURL的底层是由一个命令行工具实现的,用于获取远程文件或传输文件,更多的情况是用来模拟get/post表单提交.也可以用户文件上传,爬取文件,支持FTP/FTPS,HTTP/HTTPS等协议,通俗来讲,这些类型的服务器,cURL都可以抓取. 今天尝试了一下用cURL抓取无聊网网上的图片.上代码. 1 <?php 2 $url = 'http://wuliaoo.com/tuhua/'; 3 $ch = curl_init(); 4 5 curl_setopt($ch,CURLOPT_URL,$

Python抓取页面乱码问题的解决

import urllib2 response=urllib2.urlopen('http://house.focus.cn/') html=response.read() print html.decode('gbk') Python抓取页面乱码问题的解决,布布扣,bubuko.com