php在线采集网页数据库 php采集系统

你好 , 你有抓取网页数据到数据库的PHP代码么??php
//设置连接
$DBserver
=
"localhost";
$DBname
=
"数据库";
$DBuser
=
"账号";
$DBpassword
=
"密码";
$con
=
mysql_connect("localhost","账号","密码");
mysql_select_db("数据库");
$contents
=
file_get_contents($url);
//$contents就是网页内容,$url就是链接
$contents
=
mysql_real_escape_string($contents);
//转义 , 不用可以不要
$SQL="
INSERT
INTO
数据库表(数据字段)
VALUES('{$contents}')";
mysql_query($SQL)
or
die(mysql_error());
?
php curl 大量数据采集这个需要配合js,打开一个html页面 , 首先js用ajax请求页面,返回第一个页面信息确定处理完毕(ajax有强制同步功能),ajax再访问第二个页面 。(或者根据服务器状况,你可以同时提交几个URL,跑几个相同的页面)
参数可以由js产生并传递url,php后台页面根据URL抓页面 。然后ajax通过php,在数据库或者是哪里设一个标量,标明检测到哪里 。由于前台的html页面执行多少时候都没问题,这样php的内存限制和执行时间限制就解决了 。
因为不会浪费大量的资源用一个页面来跑一个瞬间500次的for循环了 。(你的500次for循环死了原因可能是获取的数据太多 , 大过了php限制的内存)
不过印象中curl好像也有强制同步的选项,就是等待一个抓取后再执行下一步 。但是这个500次都是用一个页面线程处理 , 也就是说肯定会远远大于30秒的默认执行时间 。
怎么用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
PHP获取网站中的信息并存入数据库用PHP自带函数就可以实现,首先要过去对方的网页信息,用
file_get_contents();参数是对方的URL地址 , 这个函数返回是一个字符串你想要的东西就在这个字符串中了
接下来就可以针对这个字符串做处理了,说下思路,正如你这个问题想获取到航班号起飞时间,在这个网页中应该有很多相同的标签元素,它们都有共同点,用
用正则表达式preg_match();或者是
preg_match_all();这两个函数它们都返回一个数组,这个数组存的就是你要的航班号和起飞时间 , 那么相同信息的数组就会出现了,然后在对这个数组进行分析找到你要的某个值或全部的值
获取信息要用到的3个函数是:
file_get_contents();
preg_match();
preg_match_all();
使用PHP的cURL库进行网页抓取 使用PHP的cURL库可以简单和有效地去抓网页 你只需要运行一个脚本 然后分析一下你所抓取的网页 然后就可以以程序的方式得到你想要的数据了 无论是你想从从一个链接上取部分数据 或是取一个XML文件并把其导入数据库 那怕就是简单的获取网页内容 cURL 是一个功能强大的PHP库 本文主要讲述如果使用这个PHP库
启用 cURL 设置
首先 我们得先要确定我们的PHP是否开启了这个库 你可以通过使用php_info()函数来得到这一信息
﹤?phpphpinfo();?﹥
如果你可以在网页上看到下面的输出 那么表示cURL库已被开启
如果你看到的话 那么你需要设置你的PHP并开启这个库 如果你是在Windows平台下 那么非常简单 你需要改一改你的php ini文件的设置 找到php_curl dll 并取消前面的分号注释就行了 如下所示

推荐阅读