好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

php抓取数据工具 php抓取网页数据

很多站长朋友们都不太清楚php抓取数据工具,今天小编就来给大家整理php抓取数据工具,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 如何利用php抓取网站动态产生的数据 2、 怎么用phpquery抓取网页实时数据?使用CI框架 3、 phpstudy怎么抓取网页数据 4、 如何在PHP中获取MYSQL数据库返回的数据的行数? 5、 通过PHP 的 curl 如何抓取进港码头的数据? 6、 PHP怎样抓取网页代码中动态显示的数据 如何利用php抓取网站动态产生的数据

$url = "网站地址目录";

$queryServer = curl_init();

curl_setopt($queryServer, CURLOPT_URL, $url);

curl_setopt($queryServer, CURLOPT_HEADER, 0);

curl_setopt($queryServer, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($queryServer, CURLOPT_RETURNTRANSFER, true);

curl_setopt($queryServer, CURLOPT_CONNECTTIMEOUT, 10);

curl_setopt($queryServer, CURLOPT_TIMEOUT, 30);

$html = curl_exec($queryServer);

$html = iconv('UTF-8','GBK//IGNORE',$html); //如果你需要是的数据是utf-8编码的,这一行可以注销,如果需要gbk编码的,请保留.如果出现乱码,就是一行的问题,你自己调着试吧

//echo $holder;exit; 此处可以输出来测试.

$html = str_replace(array("\n","\r","\t"),"",$html);

$preg = '/<table\s+width=\"800\"[^>]+>(.*?)<\/table>/';

preg_match_all($preg,$html,$out);

//匹配每行

preg_match_all('/<tr[^>]+>(.*?)<\/tr>/',$out[1][0],$tr);

//匹配每个td

$result = array();

$match = '/<td.+>([^<]+)<\/td>/U';

foreach( $tr[0] as $key => $value ){

preg_match_all($match,$value,$arr);

$result[] = $arr[1];

}

//输出测试,$result就是你要的数据,至于你要怎么输出显示格式,那就随心调就好了。

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

echo implode("\t",$value);

echo "<br>";

}

exit;

怎么用phpquery抓取网页实时数据?使用CI框架

phpquery和框架并无关系,我现在也是用CI的

先将pq引入进来

$content = file_get_content('');

phpQuery::newDocumentHTML($content);

$containers = pq("xxxx");就可以了,但你要抓取这个网站数据,他数据是js加载的,所以你只需要

$content = file_get_content(';dataSet.nd=1440145968553dataSet.rows=100dataSet.page=1dataSet.sidx=dataSet.sord=asc');这个地址返回是json数据,你直接json_decode()就OK

phpstudy怎么抓取网页数据

什么网页数据?

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

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

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

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

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

//1.php代码

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

$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/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';

        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/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';

        //判断是否有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_path.time().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/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';

        $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;

    }

}

如何在PHP中获取MYSQL数据库返回的数据的行数?

1、首先打开MYSQL的管理工具,新建一个test表,并且在表中插入两个字段。

2、接下来在Editplus编辑器中创建一个PHP文件,然后进行数据库连接,并且选择要操作的数据库。

3、然后通过mysql_query方法执行一个Insert的插入语句。

4、执行完毕以后,我们回到数据库管理工具中,这个时候你会发现插入的中文乱码了。

5、接下来我们在PHP文件中通过mysql_query执行一个set  names  utf8语句即可完成操作。

通过PHP 的 curl 如何抓取进港码头的数据?

使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据 了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库。本文主要讲述如果使用这个PHP库。

//如果要转载本文请注明出处,免的出现版权纷争,我不喜欢看到那种转载了我的作品却不注明出处的人 Seven{See7di#Gmail.com}

启用 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();

// 设置你需要抓取的URL

curl_setopt($curl, CURLOPT_URL, '');

// 设置header

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数据

上面是抓取网页的代码,下面则是向某个网页POST数据。假设我们有一个处理表单的网址,其可以接受两个表单域,一个是电话号码,一个是短信内容。

<?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

关于SSL也就是HTTPS协议,你只需要把CURLOPT_URL连接中的http://变成https://就可以了。当然,还有一个参数叫CURLOPT_SSL_VERIFYHOST可以设置为验证站点。

关于Cookie,你需要了解下面三个参数:

CURLOPT_COOKIE,在当面的会话中设置一个cookie

CURLOPT_COOKIEJAR,当会话结束的时候保存一个Cookie

CURLOPT_COOKIEFILE,Cookie的文件。

HTTP服务器认证

最后,我们来看一看HTTP服务器认证的情况。

<?php

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, '');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

curl_setopt(CURLOPT_USERPWD, '[username]:[password]')

$data = curl_exec();

curl_close($ch);

?>

PHP怎样抓取网页代码中动态显示的数据

你是想抓别人网页上ajax动态载入的数据吧?

1、要找到它的ajax载入的URL地址

2、利用PHP的file_get_contents($url)函数读取那个url地址。

3、对抓取到的内容进行分析或正则过滤。

关于php抓取数据工具的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php抓取数据工具 php抓取网页数据的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did167412
更新时间:2023-03-28   阅读:25次

上一篇: php项目动静分离 wordpress 动静分离

下一篇:php简单文章 php技术文档

相关资讯

最新资料更新

  • 1.织梦如何让channelartlist标签支持limit属性
  • 2.dedecms内容页分页及分页显示数量控制的方法
  • 3.dedecms list增加noflag属性的方法 实现让列表标签不调用有推荐属性的文章
  • 4.dedecms删除系统自定义变量的方法
  • 5.dedecms实现调用所有顶级栏目下最新文章的方法
  • 6.dedecms部分文章出现读取附加信息出错的解决办法
  • 7.dedecms友情链接中去掉织梦链投放修改方法
  • 8.dedecms联动类别的图文使用方法
  • 9.使用dedecms搭建自己的本地网站(全程图解)
  • 10.dedecms 取消栏目列表页文章标题设置推荐后的加粗
  • 11.dedecms首页调用指定一篇文章body内容的方法
  • 12.dedecms建站设置自动内链的方法
  • 13.dedecms织梦系统$GLOBALS定义文件在哪
  • 14.dedecms列表页调用文章正文内容的方法
  • 15.dedeCms批量修改文章发布时间的方法
  • 16.织梦标签channel实现列表页调用当前栏目的子类
  • 17.Dedecms获取登录用户名与ID号的方法
  • 18.dedecsm模板中首页如何实现分页的三种方法比较分析
  • 19.DEDECMS列表页文档按权重排序的实现方法
  • 20.DedeCMS系统301重定向配置方法详解

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]