请问网页数据采集需要哪些技术

请问网页数据采集需要哪些技术,第1张

asp或者aspnet是需要服务器支持xml>

什么网页数据?

是打开 本地网页还是打开网上网页

如果是本地网页的话  在浏览器上输入127001或者localhost进行访问

如果是外网我理解的是你要获取外网的一个网页,可以用代码或者程序来实现

(一般称为采集程序,或者小偷程序)

//个人认为curl好一点,因为curl可以模拟浏览器,有的网站会过滤机器人

//1php代码

//把网页读入一个字符串

$contone = file_get_contents('url');

print_r($contone);

//curl采集

#初始化curl  (true/false)

        $ch=curl_init();

        #请求url地址

        $params[CURLOPT_URL]='网址';

        #是否返回响应头信息

        $params[CURLOPT_HEADER] = true;

        #是否将结果返回

        $params[CURLOPT_RETURNTRANSFER] = true;

        #是否重定向

        $params[CURLOPT_FOLLOWLOCATION] = true;

        #伪造浏览器

        $params[CURLOPT_USERAGENT] = 'Mozilla/50 (Windows NT 51; rv:901) Gecko/20100101 Firefox/901';

        curl_setopt_array($ch, $params);

        $content=curl_exec($ch);

        //输出网页内容

        print_r($content);

        

//下面是整个curl采集类

class Curl{

    #采集的地址

    public $url;

    #匹配的正则

    public $preg;

    #模拟登录需要的用户名

    public $username;

    #模拟登录需要的密码;

    public $pwd;

    #cookie存储的路径

    private $cookie_path;

    #采集数据的字符集

    public $charset;

    /

      构造方法,初始化采集基本信息

      @param $url  采集的url

      @param $preg 匹配的正则

      @param string $username  用户名

      @param string $pwd  密码

      @param string $charset 字符集

     /

    public function __construct($info){

        extract($info);

        $this->url=$url;

        $this->preg=$preg;

        if(isset($charset)){

            header("content-type:text/html;charset="$this->charset);

        }else{

            header("content-type:text/html;charset=utf-8");

        }

        if(isset($username)){

            $this->username=$username;

        }

        if(isset($pwd)){

            $this->pwd=$pwd;

        }

    }

    /

      采集数据,非表单提交方式,直接采集的

     /

    public function get_info(){

        #初始化curl

        $ch=curl_init();

        #请求url地址

        $params[CURLOPT_URL]=$this->url;

        #是否返回响应头信息

        $params[CURLOPT_HEADER] = true;

        #是否将结果返回

        $params[CURLOPT_RETURNTRANSFER] = true;

        #是否重定向

        $params[CURLOPT_FOLLOWLOCATION] = true;

        #伪造浏览器

        $params[CURLOPT_USERAGENT] = 'Mozilla/50 (Windows NT 51; rv:901) Gecko/20100101 Firefox/901';

        //判断是否有cookie,有的话直接使用

        //if (isset($_COOKIE['cookie_jar']) &&($_COOKIE['cookie_jar'] || is_file($_COOKIE['cookie_jar']))){

        //    $params[CURLOPT_COOKIEFILE] = $_COOKIE['cookie_jar']; //这里判断cookie

        //} else {

        //    $cookie_jar = tempnam($this->cookie_path, 'cookie');                  //产生一个cookie文件

        //    $params[CURLOPT_COOKIEJAR] = $cookie_jar;                       //写入cookie信息

        //    setcookie('cookie_jar', $cookie_jar); //保存cookie路径

        //}

        #开始发送请求,传入curl参数

        curl_setopt_array($ch, $params);

        $content=curl_exec($ch);

            preg_match_all($this->preg,$content,$arr);

        return $arr;

    }

    /

      采集远程

      @param $img  路径  是一个数组

      @param $save_path   保存在你本地的路径

      @return bool

     /

    public function get_img($img,$save_path){

        for($i=0;$i<count($img);$i++) {

            $res=@file_get_contents($img[$i]);

            $img_type=substr($img[$i], strrpos($img[$i], ""));

            $path=$save_pathtime()rand(1,9999999)mt_rand() $img_type;

            $img[$i] = $path;

            file_put_contents($path,$res);

        }

        return $img;

    }

    //登录后采集

    public function register_info(){

        //采集的信息需要先登录的就要先模拟登录

        //设置cookie保存路径

        $ch = curl_init();

        //组装用户名和密码

        $info['username'] = $this->username;

        $info['password'] = $this->pwd;

        //模拟表单提交

        $params[CURLOPT_URL] = $this->url;    //请求url地址

        $params[CURLOPT_HEADER] = true; //是否返回响应头信息

        $params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回

        $params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向

        $params[CURLOPT_USERAGENT] = 'Mozilla/50 (Windows NT 51; rv:901) Gecko/20100101 Firefox/901';

        $postfields = '';

//将表单要提交的数据编程URL拼接方式

        foreach ($info as $key => $value){

            $postfields = urlencode($key)  '='  urlencode($value)  '&';

        }

        $params[CURLOPT_POST] = true;

        $params[CURLOPT_POSTFIELDS] = $postfields;

//判断是否有cookie,有的话直接使用

        if (isset($_COOKIE['cookie_jar'])&&($_COOKIE['cookie_jar']||is_file($_COOKIE['cookie_jar']))){

            $params[CURLOPT_COOKIEFILE] = $_COOKIE['cookie_jar']; //这里判断cookie

        }else{

            $cookie_jar = tempnam($this->cookie_path, 'cookie'); //产生一个cookie文件

            $params[CURLOPT_COOKIEJAR] = $cookie_jar; //写入cookie信息

            setcookie('cookie_jar', $cookie_jar); //保存cookie路径

        }

        curl_setopt_array($ch, $params); //传入curl参数

        $content = curl_exec($ch); //执行

        return $content;

    }

}

以上就是关于请问网页数据采集需要哪些技术全部的内容,包括:请问网页数据采集需要哪些技术、如何从网页采集数据 高分急求、phpstudy怎么抓取网页数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9831939.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存