❶ 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秒的默认执行时间。
❷ php采集数据怎么做啊
用fopen/file/file_get_contents/curl之类的函数将远程页面获得内容, 采用正则或过滤之类的获得自己所需要的东西, 最好写入相应的数据库保存起来。
❸ 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采集网页部分数据的问题
这个网址的空格转换一下:
http://sale.gb168.cn/Saleagent/Customer/Shopping/StandardDetails.aspx?StandNo=GB/T%2020819.1-2007
❺ php获取网页源码内容有哪些办法
可以参考以下几种方法:
方法一: file_get_contents获取
<span style="white-space:pre"></span>$url="http://www..com/";
<span style="white-space:pre"></span>$fh= file_get_contents
('http://www.hxfzzx.com/news/fzfj/');<span style="white-space:pre"></span>echo $fh;
拓展资料
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
❻ 用JS翻页的网页如何用PHP实现采集
最简单的办法就是在你的所有中文页面上,一般在导航位置加一个英文页面首页的超链接。这样用户点英文那个链接就进入英文页面了。同样的,在所有的英文页面导航位置都加一个中文首页链接。推荐你用图片做这两个链接,这样不会因为用户没有装对应的语言系统而出现奇怪字符。比如欧美用户一般是不会装中文系统的,页面上有中文字符的时候必然显示为乱码。
网站目录当然要为中文和英文各建一个独立的目录,里面放置各自的页面了。
如果使用数据库的话,则思路是一样的。
❼ php如何采集网站数据
curl+正则
网络 php小偷程序
❽ 用PHP获取网页部分数据
如果你要
和
之间的所有源码,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的
标签中的内容,可以用preg_match_all //提取所有代码 $pattern = '/
(.+?)
/is'; preg_match($pattern, $string, $match); //$match[0] 即为
和
之间的所有源码 echo $match[0]; //然后再提取
之间的内容 $pattern = '/(.+?)li>/is'; preg_match_all($pattern, $match[0], $results); $new_arr=array_unique($results[0]); foreach($new_arr as $kkk){ echo $kkk; }
❾ php网页采集(采集js延迟加载的数据)
可以用狐火看下网络请求,模拟相应网络请求,取数据。
❿ 怎么用php采集网站数据
简单的分了几个步骤:
1、确定采集目标
2、获取目标远程页面内容(curl、file_get_contents)
3、分析页面html源码,正则匹配你需要的内容(preg_match、preg_match_all),这一步最为重要,不同页面正则匹配规则不一样
4、入库