导航:首页 > 编程语言 > php数据采集代码

php数据采集代码

发布时间:2023-09-08 22:30:34

❶ 怎样利用php获取数据库中指定的记录

1.增删改只在SQL语句上不同。都使用的是PHP的query函数。如果是MSSQL数据库那么query函数就是mssql_query($sql);如果是MYSQL那就是mysql_query($sql);2.操作原理就是(1)首先建立与数据库服务器的连接(2)选择要操作的数据库(3)利用数据库的会话句柄来对所选择的数据库进行SQL语句查询给你举例。查询XXX表的所有数据-----建立数据库连接部分---<?php$hostname="数据库所在的计算机名或者IP地址";$dbuser="sa";//数据库的用户名$dbpass=""; //数据库密码$dbname="test";//要访问的数据库名 $link=@mssql_connect($hostname,$dbuser,$dbpass) or die ("连接数据库出错"); //$link就是以后查询用到的会话句柄。@mssql_select_db($dbname);//进行增删改的查询$sql="select * from XXX";@mssql_query($sql,$link);?>到此,SQL语句就执行完了。

❷ php 怎样 采集到 阿里巴巴的商品信息

<?php

classalibaba_analyse{

var$code;
var$price;

var$info;

//你的错误位置,构造函数是__construct,而不是__constructs
publicfunction__construct($keywords)
{
//http://search.china.alibaba.com/selloffer/offer_search.htm?keywords=页面是GBK编码,所以需要先转成GBK,在进行URL编码.
$u="http://search.china.alibaba.com/selloffer/offer_search.htm?keywords=".urlencode(iconv('UTF-8','GB2312',$keywords));
$this->code=file_get_contents($u);
}

publicfunctionget_price()
{
/*
价格是在<spanclass="sw-ui-font-priceIcon">450<spanclass="smallSize">.00</span><spanclass="priceUnit"></span></span>这样的字段中.
而不是在<divclass="pricef12c-e1">.*([d.]+?).*</div>中
preg_match_all('/<divclass="pricef12c-e1">.*([d.]+?).*</div>/sU',$this->code,$price);
*/
preg_match_all('/<spanclass="sw-ui-font-priceIcon">(d+)(?:<spanclass="smallSize">)([.d]{3})?</span>/sU',$this->code,$price,PREG_SET_ORDER);

/*
得到的数据格式,所以需要使用array_map整理价格
Array
(
[0]=>Array
(
[0]=><spanclass="sw-ui-font-priceIcon">570<spanclass="smallSize">.00</span>
[1]=>570
[2]=>.00
)
....
)
*/
$this->price=array_map(create_function('$a','return$a[1].$a[2];'),$price);
}

}

$ali=newalibaba_analyse("联想笔记本");
$ali->get_price();

print_r($ali->price);


代码给出了, 而且经过了测试. 代码中有注解.

你自己拷贝过去试试吧


希望能够采纳!,能当成优质答案就最好啦.!

❸ 用PHP进行数据采集

$strPreg = "|<td[^>]+>([^<]+)<\/td>\s*<td[^>]+>([^<]+)<\/td>\s*<td[^>]+>([^<]+)<\/td>|U";

搞定了才发现你都没悬赏分。。。

❹ php采集大数据的方案

1、建议你读写数据和下载图片分开,各用不同的进程完成。
比如说,取数据用get-data.php,下载图片用get-image.php。

2、多进程的话,php可以简单的用pcntl_fork()。这样可以并发多个子进程。
但是我不建议你用fork,我建议你安装一个gearman worker。这样你要并发几个,就启几个worker,写代码简单,根本不用在代码里考虑thread啊,process等等。

3、综上,解决方案这样:
(1)安装gearman worker。
(2)写一个get-data.php,在crontab里设置它每5分钟执行一次,只负责读数据,然后把读回来的数据一条一条的扔到 gearman worker的队列里;
然后再写一个处理数据的脚本作为worker,例如叫process-data.php,这个脚本常驻内存。它作为worker从geraman 队列里读出一条一条的数据,然后跟你的数据库老数据比较,进行你的业务逻辑。如果你要10个并发,那就启动10个process-data.php好了。处理完后,如果图片地址有变动需要下载图片,就把图片地址扔到 gearman worker的另一个队列里。
(3)再写一个download-data.php,作为下载图片的worker,同样,你启动10个20个并发随便你。这个进程也常驻内存运行,从gearman worker的图片数据队列里取数据出来,下载图片

4、常驻进程的话,就是在代码里写个while(true)死循环,让它一直运行好了。如果怕内存泄露啥的,你可以每循环10万次退出一下。然后在crontab里设置,每分钟检查一下进程有没有启动,比如说这样启动3个process-data worker进程:
* * * * * flock -xn /tmp/process-data.1.lock -c '/usr/bin/php /process-data.php >> /dev/null 2>&1'
* * * * * flock -xn /tmp/process-data.2.lock -c '/usr/bin/php /process-data.php >> /dev/null 2>&1'
* * * * * flock -xn /tmp/process-data.3.lock -c '/usr/bin/php /process-data.php >> /dev/null 2>&1'

不知道你明白了没有

阅读全文

与php数据采集代码相关的资料

热点内容
压缩文件zip怎么解压不了 浏览:390
如何看苹果appstore软件是否收费 浏览:463
android发送字符串 浏览:13
python3最好的书籍推荐 浏览:684
蓝牙模块与单片机连接 浏览:665
mssql命令大全 浏览:193
mpv服务器怎么样 浏览:599
服务器迁移后怎么恢复 浏览:249
在vfp中如何显示和隐藏命令 浏览:283
如何部署地图服务器 浏览:737
安卓系统云闪付哪个app好用 浏览:111
程序员一天完成几个需求 浏览:960
请运行命令来卸载oracle 浏览:243
知识问答哪个app好 浏览:398
数控铣床编程代码大全 浏览:869
程序员相亲被骂 浏览:810
r6单片机 浏览:614
牛客编程题怎么评分 浏览:189
希沃白板怎么在安卓重置系统 浏览:845
python处理json过大 浏览:260