导航:首页 > 编程语言 > php自动抓取

php自动抓取

发布时间:2022-05-05 13:42:15

1. php定时抓取HTML

$time = time();
$file = 'AA.dat';
@$filemtime = filemtime($file);
if($time - $filemtime >60){
$h = fopen($file,'wb+');
$content = file_get_contents('AA.html');
fwrite($h,$content);
fclose($h);
touch($file);
}

试下用strip_tags去除HTML后得到内容,如果再复杂,我就不知了~

2. PHP抓取网页指定内容

<?php
/*
* 如下: 方法有点笨
* 抓取网页内容用 PHP 的正则
* 用JS每隔5分钟刷新当前页面---即重新获取网页内容
*
* 注: $mode中--<title></title>-更改为所需内容(如 $mode = "#<a(.*)</a>#";>获取所有链接)
*
* window.location.href="http://localhost//refesh.php";中的http://localhost//refesh.php
* 更改为自己的URL----作用:即刷新当前页面
*
* setInterval("ref()",300000);是每隔300000毫秒(即 5 * 60 *1000 毫秒即5分钟)执行一次函数 ref()
*
* print_r($arr);输出获得的所有内容 $arr是一个数组 可根据所需输出一部分(如 echo $arr[1][0];)
* 若要获得所有内容 可去掉
* $mode = "#<title>(.*)</title>#";
if(preg_match_all($mode,$content,$arr)){
print_r($arr);
echo "<br/>";
echo $arr[1][0];
}
再加上 echo $content;
*/
$url = "http://www..com"; //目标站
$fp = @fopen($url, "r") or die("超时");

$content=file_get_contents($url);
$mode = "#<title>(.*)</title>#";
if(preg_match_all($mode,$content,$arr)){
//print_r($arr);
echo "<br/>";
echo $arr[1][0];
}
?>
<script language="javaScript" type="text/javascript">
<--
function ref(){
window.location.href="http://localhost//refesh.php";
}
setInterval("ref()",300000);
//-->
</script>

3. 怎么写php爬虫自动抓取百度知道

curl来写。模拟登陆。抓取页面。分析标签。正则匹配你想要的内容。然后存入数据大概就是这样的流程。

4. PHP如何自动抓取页面内容,页面有分页,我要把分页中的内容也抓到

你把页面抓回来,分离出分页代码,从中分析出每个分页的url,再通过url去抓取各分页

ps:不同网站的分页代码部分不尽相同,只能具体问题具体分析

5. php抓取数据

像这样采集的程序一般把循环的速度搞一下,如果太快,一个网速跟不上,一是服务器设置了防采集或是防CC攻击等,如果你每5分钟采集一次,这样,肯定不会受到限制,如果你一分钟采集100或是更多次这服务器会限制你访问,认为你是恶意攻击,明白?就像网络或google 机器人一样,如果不做限制采集过多,会把服务器拉死。

6. 如何利用php抓取网站动态产生的数据

$url = "网站地址目录";
$queryServer = curl_init();
curl_setopt($queryServer, CURLOPT_URL, $url);
curl_setopt($queryServer, CURLOPT_HEADER, 0);
curl_setopt($queryServer, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($queryServer, CURLOPT_RETURNTRANSFER, true);
curl_setopt($queryServer, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($queryServer, CURLOPT_TIMEOUT, 30);
$html = curl_exec($queryServer);
$html = iconv('UTF-8','GBK//IGNORE',$html); //如果你需要是的数据是utf-8编码的,这一行可以注销,如果需要gbk编码的,请保留.如果出现乱码,就是一行的问题,你自己调着试吧
//echo $holder;exit; 此处可以输出来测试.
$html = str_replace(array("\n","\r","\t"),"",$html);
$preg = '/<table\s+width=\"800\"[^>]+>(.*?)<\/table>/';
preg_match_all($preg,$html,$out);
//匹配每行
preg_match_all('/<tr[^>]+>(.*?)<\/tr>/',$out[1][0],$tr);
//匹配每个td
$result = array();
$match = '/<td.+>([^<]+)<\/td>/U';
foreach( $tr[0] as $key => $value ){
preg_match_all($match,$value,$arr);
$result[] = $arr[1];
}
//输出测试,$result就是你要的数据,至于你要怎么输出显示格式,那就随心调就好了。
foreach( $result as $key => $value ){
echo implode("\t",$value);
echo "<br>";
}
exit;

7. php如何自动获取一条数据并且保证下次不会获取这一条

你说的自动获取是怎么定义的?进入某页面读取吗?如果用户刷新(或再次进入本页面)再获取另一条吗?
你要保证下次不会获取这一条,那就得识别你的用户了.有一个不算太好的方法来识别,就是保留访问过的IP和数据的Id,如果某有某IP进入该页面,则先查一下该IP访问过的数据ID列表.查询的时候排除掉.
但用IP来识别用户是不准确的.一个公司的人都可能用同一IP访问你的页面.
主要还是看你的需求,你描述的太不准确了.
====================================
我很多用户 每个用户自动获取数据池的一条数据 并且保证这条数据不会被其它用户获取
============================
很奇怪的需求,那有时间约束吗?还是说被获到的数据只能且只使用一次.以后就不使用.如果只使用一次,那很简单,加个字段标识一下,只要被查询过,就标记,以后查询直接忽略掉.
但如果有时间约束,比如三天后就解除标记,那还得弄一个脚本每天晚上去解除标记.
但好象这种需求真是奇怪,还是思考问题的思路有问题?

8. PHP 怎样自动提取文章中的关键词

一般来说,你可以定义几种规则来获取关键词
可以设置一个关键词库,这些关键词用逗号之类的符号分隔
当录入一篇文章的时候,匹配设置的关键词库,当出现次数大于多少次的词语,定义为关键词.

9. php自动抓取淘宝订单号和支付宝交易号存入数据库的代码

你这个想法很好,但是实现起来很麻烦,首先你需要淘宝对你开放API接口才行,然后写代码有事一个难事,不过我知道有一个软件是可以实现的,甩手掌柜,只需要绑定你的淘宝账号就可以,因为他们一个公司,和淘宝合作,淘宝对其开放API,然后一个团队写代码,所以是可以实现的。不光可以自动下载订单,还可以轻松管理商品,打印发货单,进销存管理等等!

10. php每天抓取数据并更新新

以前我用过querylist插件抓数据,服务器写和定时器,每天固定时间去运行脚本。朝这个方式试试
高并发下数据的更新,应该 update table xxx set num = num - 1 的方式,这种方式可以保证数据的正确性。
但是会出现 num 为负数的问题,如果库存为负数,显然是不合理的。
于是,需要将 num 字段设置为 无符号整型,这样就不会出现负数了,因为,如果减到负数,就会更新失败。
但是这种依然会造成很多无用的更新语句的执行,是不合理的。
于是,update table xxx set num = num - 1 where num > 0,
这样当 num 等于0之后就不会去更新数据库了,减少了很多无用的开销。
这种方式被称作“乐观锁”
此外,对于抢红包这种非整数的操作,我们应该转换为整数的操作。
关于抢购超卖的控制
一般抢购功能是一个相对于正常售卖系统来说独立的子系统,这样既可以防止抢购时的高并发影响到正常系统,
也可以做到针对于抢购业务的特殊处理。
在后台设计一些功能,可以就昂正常的商品加入到抢购活动中并编辑成为抢购商品,写入到抢购商品表,当然
也可以把抢购商品表写入redis而不是数据表。并且在原商品表写入一个同样的商品(id相同,用于订单查看,
此商品不可购买)
如果是数据表,为了控制超卖,需要对表进行行锁,更新的时候带上 where goods_amount > 0。
如果是redis,使用 hincrby 一个负数来减库存,并且 hincrby 会返回改变后的值,再来判断返回值是否大于0,
因为redis每个命令都是原子性的,这样不用锁表就可控制超卖。

阅读全文

与php自动抓取相关的资料

热点内容
python操作zookeeper 浏览:705
苹果手机dcim文件夹显示不出来 浏览:430
如何压缩文件夹联想电脑 浏览:583
程序员的学习之旅 浏览:440
apkdb反编译 浏览:922
雪花算法为什么要二进制 浏览:825
在文档中打开命令行工具 浏览:608
android图标尺寸规范 浏览:369
python实用工具 浏览:208
流量计pdf 浏览:936
科东加密认证价格 浏览:532
dos命令读文件 浏览:996
成为程序员需要什么学历 浏览:672
pdf农药 浏览:228
canal加密 浏览:497
日本安卓系统和中国有什么区别 浏览:137
linux命令行修改文件 浏览:838
从编译和解释的角度看 浏览:649
徐志摩pdf 浏览:651
夏天解压球视频 浏览:304