2019独角兽企业重金招聘Python工程师标准>>>

部分源码来自:http://www.361way.com/php-curl-url/2779.html

<?php//指定测试的地址(页面):$viewUrl = "";
$host = "";function _striplinks($document) {preg_match_all("'<\s*a\s.*?href\s*=\s*([\"\'])?(?(1) (.*?)\\1 | ([^\s\>]+))'isx", $document, $links);// catenate the non-empty matches from the conditional subpatternwhile (list($key, $val) = each($links[2])) {if (!empty($val))$match[] = $val;} while (list($key, $val) = each($links[3])) {if (!empty($val))$match[] = $val;}// return the linksreturn $match;
}
/*===================================================================*\Function: _expandlinksPurpose:    expand each link into a fully qualified URLInput:       $links          the links to qualify$URI            the full URI to get the base fromOutput:        $expandedLinks  the expanded links
\*===================================================================*/
function _expandlinks($links,$URI){$URI_PARTS = parse_url($URI);$host = $URI_PARTS["host"];preg_match("/^[^\?]+/",$URI,$match);$match = preg_replace("|/[^\/\.]+\.[^\/\.]+$|","",$match[0]);$match = preg_replace("|/$|","",$match);$match_part = parse_url($match);$match_root =$match_part["scheme"]."://".$match_part["host"];$search = array(   "|^http://".preg_quote($host)."|i","|^(\/)|i","|^(?!http://)(?!mailto:)|i","|/\./|","|/[^\/]+/\.\./|");$replace = array(  "",$match_root."/",$match."/","/","/");$expandedLinks = preg_replace($search,$replace,$links);return $expandedLinks;
}function _checkOk($url, $key){$headers = @get_headers($url);if ($headers[0] == 'HTTP/1.0 404 Not Found') {echo "\n".$key;echo '---<div style=" color: red; font-size: 18px; font-weight: bold;"> Not Found </div>';echo "\n";} else {echo "\n".$key;echo "---- ok \n";}
}/** 使用curl 的所有链接。*/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// 只需返回HTTP header
curl_setopt($ch, CURLOPT_HEADER, 1);
// 页面内容我们并不需要
// curl_setopt($ch, CURLOPT_NOBODY, 1);
// 返回结果,而不是输出它
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$html = curl_exec($ch);
$info = curl_getinfo($ch);
if ($html === false) {echo "cURL Error: " . curl_error($ch);
}
curl_close($ch);
$linkarr = _striplinks($html);// 主机部分,补全用
if (is_array($linkarr)) {foreach ($linkarr as $k => $v) {$linkresult[$k] = _expandlinks($v, $host);}
}$linkresult = array_unique($linkresult);echo '<pre>';
foreach ($linkresult as $key => $value){echo $key."--".$value;_checkOk($value,$key);}echo "\n ==============RUN OVER=============== \n";
//printf("<p>此页面的所有链接为:</p><pre>%s</pre>\n", var_export($linkresult , true));

转载于:https://my.oschina.net/namenull/blog/214709

检测一个网页上的链接是否都可以正常访问相关推荐

  1. python爬虫网页中的图片_Python爬虫爬取一个网页上的图片地址实例代码

    本文实例主要是实现爬取一个网页上的图片地址,具体如下. 读取一个网页的源代码: import urllib.request def getHtml(url): html=urllib.request. ...

  2. Python爬虫实例(2)-用BeautifulSoup爬取一个网页上的多张照片(以百度贴吧为例)

    上一篇博客,实现了下载一张图片的简单爬虫.但是其代码,仅仅能下载一张图片.爬虫作为数据分析的第一步工作,需要爬取的是海量数据:假设我想下载一个网站几十张图片,那怎么实现呢? 首先,我们利用框图或者伪代 ...

  3. python文字教程-Python 爬虫零基础教程(3):输出一个网页上的文字

    效果图: 代码: # -*- coding: utf-8 -*- # Filename:print_text.py # 输出网页上的文字 import re import requests user_ ...

  4. 怎么把一个网页作为背景套在另一个网页上_设计科技公司网站背景的六个小技巧...

    我们都知道,任何网站的背景对于网站如何影响我们都至关重要,尤其是在设计科技公司网站的时候表现的更加明显.背景对访问者及其用户对网站的认知程度有多大影响.以前网站没有背景,内容被放置在纯白色背景上.但是 ...

  5. 如何将自己的网页上传让别人都可以搜索到,如何建站

    很多才开始做前端的人,都希望自己所做的作品可以让其他人都可以搜索到,或者是想自己建设一个自己的个人网站. 就像我们搜索www.baidu.com一样,首先我们要先有一个域名,域名是需要购买的,可以在阿 ...

  6. python爬虫网页超链接_Python爬虫获取网页上的链接

    Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.利用Beautiful Soup可以对网页进行解析,提取所有的超链接. Beautiful Soup提供一些简单的.p ...

  7. 热点能打开网页wifi打不开_【xp笔记本链接热点打不开网页】xp链接无线 显示连上打不开网页_笔记本电脑热点打不开...

    2015-06-03 16:27:03 对于一般的用户来说,操作使用电脑过程中花费很大一部分时间在浏览网页上面.有笔记本xp系统用户遇到这样的故障问题,能够打开浏览器网页可是点击网页上的链接却怎么也打 ...

  8. 访问一个网页的全过程

    原文链接:访问一个网页的全过程(超详细版) 学习:访问一个网站的全过程 补充 总体来说分为以下几个过程: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 ...

  9. php网页连mysql_php - 如何在单个网页上连接多个MySQL数据库?

    php - 如何在单个网页上连接多个MySQL数据库? 我将信息分散在几个数据库中,并希望使用PHP将所有信息放到一个网页上. 我想知道如何连接到单个PHP网页上的多个数据库. 我知道如何使用以下方法 ...

最新文章

  1. boost::program_options模块实现处理响应文件的测试程序
  2. QT的QUdpSocket类的使用
  3. 【Java6】Date类/Calendar类,System类/Math类,包装类,集合,泛型,内部类
  4. 博客园的BLOG也申请了
  5. 延时消息_Handler的消息延时是怎么实现的
  6. 积分图像(Integral image)
  7. matlab 各种文件的读取(及读写问题的解决)
  8. LVS_Cluster
  9. 解决Hbase的几个常见bug
  10. wlan和wifi的区别
  11. 【最优方案】合唱队形
  12. 《东周列国志》第六十四回 曲沃城栾盈灭族 且于门杞梁死战
  13. 听听别人怎么说:VueJS 与 ReactJS
  14. html css笔记zht
  15. Go语言核心之美-必读
  16. 从-Quora-的-187-个问题中学习机器学习和NLP
  17. 给网页质量进行瘦身的办法-金瑞帆建站
  18. 【学习笔记】正则语言的可检验性(性质检验)
  19. 【ESP8266个人学习笔记】二、自动控制系统的输入输出信号
  20. no such instruction问题

热门文章

  1. python填写excel-使用Python填写Excel文件的简便方法
  2. c语言gets多组测试,C语言如何实现输入多组数据测试
  3. guava之ComparisonChain
  4. shell脚本中的输入输出
  5. 题目1104:整除问题
  6. 一个简单的Webservice的demo(中)_前端页面调用
  7. 函数:使用递归实现阶乘
  8. win7连接centos的nfs
  9. UML从需求到实现---类图(2)
  10. 一步步学习SPD2010--第十一章节--处理母版页(10)--重置母版页到网站定义