导航:首页 > 编程语言 > php如何采集

php如何采集

发布时间:2023-12-19 03:19:07

‘壹’ php https数据采集

1:curl抓取html
2:用正则截取你需要的内容,或则用explode分割获取内容,还有phpquery等可以像jquery一样使用选择器获取你需要的内容

‘贰’ PHP中怎样实现文章采集

只举例说明,生产环境你自己根据情景去搞
$url = 'www.domain.com';

$content = file_get_content($url);//抓取网页全部内容
preg_match( string pattern, string subject [, array matches ] );//正则获取自己需要的内容
入库~
完事了。。。
当然,情形复杂,例如需要登录,采集目标限制等问题,这再说...
实际使用的时候,可以直接使用Snoopy类,提供好多方法供使用,比自己去造轮子要安全,当然,你可以在她的基础上再去造轮子~~~

‘叁’ 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采集多个tr中的内容如何做

<?php

$dom = new DOMDocument();
$dom->loadHTML($html);

$props = array();

$xpath = new DOMXPath($dom);
$trNodes = $xpath->query("//tr");
foreach($trNodes as $trNode) {
$thNodes = $xpath->query("./th");
$tdNodes = $xpath->query("./td");
if($thNodes->length == 0 || $tdNodes->length == 0) continue;

props[$thNodes->item(0)->nodeValue] = $tdNodes->item(0)->nodeValue;
}
var_mp($props);

‘伍’ 用JS翻页的网页如何用PHP实现采集

最简单的办法就是在你的所有中文页面上,一般在导航位置加一个英文页面首页的超链接。这样用户点英文那个链接就进入英文页面了。同样的,在所有的英文页面导航位置都加一个中文首页链接。推荐你用图片做这两个链接,这样不会因为用户没有装对应的语言系统而出现奇怪字符。比如欧美用户一般是不会装中文系统的,页面上有中文字符的时候必然显示为乱码。
网站目录当然要为中文和英文各建一个独立的目录,里面放置各自的页面了。

如果使用数据库的话,则思路是一样的。

‘陆’ 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如何采集相关的资料

热点内容
学生买个云服务器要多少钱 浏览:996
在运行对话框中输入命令提示符 浏览:289
微信公众号开发教程php 浏览:195
电脑作为服务器怎么配置 浏览:93
磨砂壳文件夹 浏览:980
b2c开源源码 浏览:56
电脑qq压缩文件解压缩失败 浏览:177
大龄女程序员想转行 浏览:99
聚币交易所app怎么充值 浏览:163
加密文件如何解除加密iPad 浏览:922
太极张三丰怀旧源码 浏览:105
2016考研大纲pdf 浏览:67
程序员sdk算法 浏览:527
程序员听诊技巧 浏览:622
从技术走向管理pdf 浏览:823
思科命令行模式删除用户 浏览:569
一号玩家app怎么换绑 浏览:325
emm平台源码 浏览:331
从网页下载资料服务器地址 浏览:408
安卓用什么播放器可以看港剧 浏览:458