当前位置:首页 » 编程语言 » 数据采集php

数据采集php

发布时间: 2022-09-10 15:50:32

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使用3种方法实现数据采集 什么叫采集

下面的php代码可以将HTML表格的每行每列转为数组,采集表格数据
<?php function get_td_array($table) { $table = preg_replace("'<table[^>]*?>'si","",$table); $table = preg_replace("'<tr[^>]*?>'si","",$table); $table = preg_replace("'<td[^>]*?>'si","",$table); $table = str_replace("</tr>","{tr}",$table); $table = str_replace("</td>","{td}",$table); //去掉 HTML 标记 $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table); //去掉空白字符 $table = preg_replace("'([rn])[s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode('{tr}', $table); array_pop($table); foreach ($table as $key=>$tr) { $td = explode('{td}', $tr); array_pop($td); $td_array[] = $td; } return $td_array; } ?>

Ⅲ php程序员对数据采集的要求掌握程度如何

数据采集很重要,最好是研究下采集,我工作很多用到采集。

Ⅳ 怎么用PHP采集别的网上的数据

简单的有个file_get_content函数,然后写正则规则匹配内容,存数据库。
如果需要登陆的,用curl,还有可以用PHP的DOM库替换正则表达式
python和Java等都有beautifulsoup这个第三方库,用来采集非常棒

Ⅳ PHP或者python进行数据采集和分析,有什么比较成熟的框架

Python:
1.requests 很好用的http库,中文文档:Requests: 让 HTTP 服务人类

2.BeautifulSoup 很好用很强大的html解析库,中文文档:Beautiful Soup 4.4.0 文档

3.Scrapy 知名爬虫框架,中文文档:Scrapy 0.25 文档

Ⅵ PHP数据采集

$remark = $_POST['$remark']; 改成 $remark = $_POST[$remark];

Ⅶ 怎么用php采集网站数据

简单的分了几个步骤:
1、确定采集目标
2、获取目标远程页面内容(curl、file_get_contents)
3、分析页面html源码,正则匹配你需要的内容(preg_match、preg_match_all),这一步最为重要,不同页面正则匹配规则不一样
4、入库

Ⅷ PHP数据采集问题(相对地址转绝对地址)

其实用不着这么麻烦的,采集时,你看到的图片路径是相对地址,是相对当前域名的一个相对路径而已,你只要在前面加上
http://当前域名(采集内容的域名,比如..com)/
就是它的绝对地址了,
就像/abc.jpg一样
http://当前域名(采集内容的域名,比如..com)/abc.jpg就是绝对地址了
没必要搞复杂

Ⅸ php怎样web服务器端的数据采集方法

class caiji{
private $reg;//正则
private $url;//数据源
private $dataArr;//返回结果数组

public function __construct($reg,$url){
$this->reg=$reg;
$this->url=$url;
$this->caijStar();
}

private function caijStar(){//采集方法
$conn=file_get_contents("{$this->url}");
$reg="{$this->reg}";
preg_match_all($reg,$conn,$this->dataArr);
}

public function getArr(){//数据获取方法
return $this->dataArr;
}
}

Ⅹ PHP 数据采集 太慢

一页一页采啊,你要是想把N个网页一下子采下来,在浏览器中肯定不行,你可以用php.exe在命令行下运行你的采集脚本。如果你想在浏览器上采,你得一次采集一个页面,然后用window.location.href转向,把下一个要采集的地址传过去,这样一页一页的循环来采集。

热点内容
算法工作原理 发布:2025-01-12 20:36:38 浏览:24
网络访问监控软件 发布:2025-01-12 20:26:57 浏览:465
养羊啦源码 发布:2025-01-12 20:25:48 浏览:570
轩逸朗逸哪个配置最好 发布:2025-01-12 20:10:00 浏览:49
主板存储器分 发布:2025-01-12 20:04:46 浏览:376
数据库逻辑运算 发布:2025-01-12 20:03:54 浏览:571
javawindows服务器搭建 发布:2025-01-12 19:59:37 浏览:570
linux关闭iptables 发布:2025-01-12 19:58:49 浏览:150
服务器电脑名字改了影响数据库吗 发布:2025-01-12 19:58:44 浏览:652
手机存储优化 发布:2025-01-12 19:58:43 浏览:356