在数据采集与页面分析中,常需要抓取给定url页面的内容,或者第二、第三层次深度页面内容。

这里是一个测试例子的实现,仅供参考。

/*

匹配给定页面链接

return:array match[link,content,all]

*/

function match_links($host, $document) {

$pattern = '/(.*?)/i';

preg_match_all($pattern, $document, $m);

return $m;

preg_match_all("']+))[^>]*>?(.*?)'isx",$document,$links);

while(list($key,$val) = each($links[2])) {

if(!empty($val))

if(preg_match("/http/",$val)){

$match['link'][] = $val;

}

else {

$match['link'][] = $host . $val;

}

}

while(list($key,$val) = each($links[3])) {

if(!empty($val))

if(preg_match("/http/",$val)){

$match['link'][] = $val;

}

else {

$match['link'][] = $host . $val;

}

}

while(list($key,$val) = each($links[4])) {

if(!empty($val))

$match['content'][] = $val;

}

while(list($key,$val) = each($links[0])) {

if(!empty($val))

$match['all'][] = $val;

}

return $match['link'];

}

/*

从给定url中获取页面文本内容

*/

function get_content_from_url($url) {

$str = @file_get_contents($url);

if(mb_check_encoding($str, "GBK"))

$str = iconv("GBK","UTF-8", $str);

$str = strip_tags($str); // 过滤html标签

/*

$str = preg_replace( "@

$str = preg_replace( "@@is", "", $str );

$str = preg_replace( "@

$str = preg_replace( "@<(.*?)>@is", "", $str );

*/

//过滤非汉字字符

preg_match_all('/[x{4e00}-x{9fff}]+/u', $str, $matches);

$str = join(',', $matches[0]);

if(!$str)

return NULL;

return $str;

}

function get_content($url,$depth) {

if(!$url || $depth < 1)

return false;

while($depth > 1){

$str = @file_get_contents($url);

if(!$str)

return false;

$parseurl = parse_url($url);

if($parseurl['host'])

$host = $parseurl[scheme] . "://" . $parseurl['host'];

$arrlink = match_links($host,$str);

$arr_url = array_unique($arrlink);

$depth--;

foreach($arr_url as $url){

$content .= get_content($url, $depth); //递归调用

}

}

$content .= get_content_from_url($url);

return $content;

}

php正则抓取网页指定内容,php正则匹配获取指定url网页页面超级链接地址与抓取指定页面内容方法...相关推荐

  1. python爬取凤凰新闻网_python爬取凤凰网站的新闻,及其链接地址,来源,时间和内容,用selenium自动化和requests处理数据...

    importrequestsfrom selenium importwebdriverimporttimedefgrasp(urlT): driver= webdriver.Chrome(r'C:\P ...

  2. 微信开发之获取OAuth2.0网页授权认证和获取用户信息进行关联(转:http://playxinz.iteye.com/blog/2249634)

    最近有做了关于微信公众号和自己网站用户进行用户关联授权登录的一个功能,主要是用户关注该公众号,点击会员中心,则会弹出需要关联授权的网页授权:OAuth2.0网页授权,然后用户同意获取用户信息,进行用户 ...

  3. webmagic ajax,webmagic爬虫对静态页面,动态页面及js请求方式爬取的处理

    webmagic爬取网页数据,[分页爬取内容]见上一篇博文https://segmentfault.com/a/1190000020005655 webmagic的官方文档见: http://webm ...

  4. 网站被新网温馨提示 链接地址含有违规内容无法访问的解决

    某上海客户的家具网站最近被新网拦截了,直接输入网站域名访问提示:当前链接地址或网站因含有违规内容,暂时无法访问.目前客户做了百度竞价推广,一天消费在500左右,由于网站打不开,损失惨重,根据客户目前的 ...

  5. python抓取html中特定的数据库,Python抓取网页中内容,正则分析后存入mysql数据库...

    firefox+httpfox可以查看post表单 首先在http://www.renren.com/这个地址输入用户名和密码, 输入用户名和密码之后post到下面这个网址: http://www.r ...

  6. 上手快!!福利局!新手如何使用python爬虫爬取网页图片(使用正则进行数据解析)当然这个新手是我自己

    作为一个python新入门小白,突然就想发个博客,一方面为了记录学习历程,一方面能分享给新入门的同学经验,更多的是想和大家一起学习和交流.以下是我以小白的角度分享的爬虫的相关知识和一个简单的爬取网页图 ...

  7. python爬取数据案例分析_基于Python及webdriver的网页抓取案例

    上次有朋友问怎么抓取交易所网站的数据,特别是历史数据,这里特别推荐使用selenium这一自动化测试框架. 原本selenium是用来完成大量基于浏览器的自动化测试的,但由于可以方便地执行JS代码,摸 ...

  8. avascript怎么获取指定url网页中的内容

    目录 一.总结 一句话总结:推荐jquery中ajax,简单方便. 1.js能跨域操作么? 二.用php获取 三.jquery中ajax获取 四.通过node.js获取 回到顶部 >  一.总结 ...

  9. python抓取抖音热门视频_要是30行代码!7步教会你Python爬取网页抖音热门视频

    前言 抖音短视频相信大家都听过,也不陌生对吧!可以看到海量的短视频,涵盖了各大行业.个人觉得抖音有毒,刷着刷着根本停不下来,一看时间就是凌晨3.4点.今天带大家爬取抖音网页版的视频数据!一睹为快吧 本 ...

最新文章

  1. 技术图文:02 创建型设计模式(上)
  2. LiveVideoStackCon 2018日程(草稿)发布
  3. oracle 查询各科前3名_好消息!新世纪女排教练战绩排名出炉,前3名中国人占据两席...
  4. 74芯片引脚真值表汇总
  5. AJAX的安全性及AJAX安全隐患
  6. ABP Framework 研习社经验总结(6.28-7.2)
  7. ls mac 显示最近修改日期_如何在Mac上按日期排序文件 | MOS86
  8. android 回车键事件编程
  9. Cocos2d-x3.0游戏实例《不要救我》第一章——前言
  10. java接听电话freeswitch_java通过http协议与Freeswitch对接实现动态添加用户
  11. linux如何挂载windows下的共享文件
  12. ORA-12514: TNS:listener does not currently know of service …
  13. 地域和地方的区别_区域经济学入门级名词内涵的探索(区域、地域、地区、空间和区位的区别与联系)...
  14. 文件带 BOM 的看法
  15. 时间管理_个人计划表
  16. java word文档内容比较_Java 比较两个Word文档差异
  17. matlab 求傅里叶级数,MATLAB傅里叶级数.docx
  18. 期货交易 python_strategies/python版CTP商品期货交易类库.py at master · rui/strategies · GitHub...
  19. 他本硕博连跨3大专业,毕业后没多久被破格聘为985高校教授!
  20. 魔兽世界az端和TC端有什么区别 Mangos,TC,SW,AZ,AC的关系

热门文章

  1. 程序员IT认证有用吗?软件工程师考证有必要吗?
  2. CSMA/CD 和 CSMA/CA 之原理
  3. 计算机网络—CSMA/CD协议
  4. Matlab绘图常用设置及函数
  5. 烂泥:Domino8.5服务器迁移方案
  6. Java打印杨辉三角
  7. 教师资格证面试 计算机应用,2019下半年初中信息技术教师资格证面试真题及答案汇总...
  8. Java的Map(映射)特性及编程思想
  9. Cisco ASA Security Context【虚拟防火墙】
  10. 计算机软件行业的环境评估,计算机软件评估研究