导航:首页 > 编程语言 > 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如何采集相关的资料

热点内容
世界史纲pdf 浏览:131
湖北社保年审app叫什么名字 浏览:852
迈达克云服务器 浏览:595
mfc深入浅出从mfc设计到mfc编程 浏览:81
萤石云服务器连接设置 浏览:325
中国名着pdf 浏览:592
华为服务器设备序列号怎么看 浏览:319
跑永辉生活配送用什么app 浏览:149
ug识别符号命令在哪里 浏览:719
pdf文件改文字 浏览:732
查询qq号剑灵服务器地址 浏览:552
国家反诈中心app为什么要刷脸 浏览:303
iphone怎么修改dns服务器地址 浏览:85
bandizip解压位置 浏览:168
服务器的防火墙如何访问 浏览:306
javagoto关键字 浏览:847
广州少儿编程加盟排名榜 浏览:122
51单片机th0 浏览:292
冠军交易pdf 浏览:208
excelword转换成pdf 浏览:389