PHP取网页所有链接实现程序代码总结

我们核心代码就是正则表达试了

 代码如下 复制代码

function get_all_url($code){
             preg_match_all(‘/<as+href=["|']?([^>"' ]+)["|']?s*[^>]*>([^>]+)</a>/i’,$code,$arr);
            return array(‘name’=>$arr[2],’url’=>$arr[1]);
}

上面只是简单的下面看全例

 代码如下 复制代码

$url ='http://www.111cn.net';
$body=@file_get_contents($url);
preg_match_all('/href=['"]?([^'"]*)['"]?>(.*)/i',$body,$b);
$nums = array();
foreach($b[1] as $u){
  if(in_array($u,$nums)){
  continue;
  }
  $nums[]=$u;
  $title=strip_tags($u);
  echo $title."</br>";
}

利用curl函数来获取

 代码如下 复制代码

<?php
/*
 * 使用curl 采集www.111cn.net下的所有链接。 
 */
include_once('function.php');

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.111cn.net/');
// 只需返回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);
// 主机部分,补全用
$host = 'http://www.111cn.net/';
if (is_array($linkarr)) {
 foreach ($linkarr as $k => $v) {
  $linkresult[$k] = _expandlinks($v, $host);
 }
}

printf("<p>此页面的所有链接为:</p><pre>%s</pre>n", var_export($linkresult , true));

?>

获取所有网址,但只有不重复的数据

 代码如下 复制代码

<?
  $e=clinchgeturl("http://im286.com/forumdisplay.php?fid=1");
  
  var_dump($e);
  function clinchgeturl($url)
  {
  
  //$url="http://127.0.0.1/1.htm";
  //$rootpath="http://fsrootpathfsfsf/yyyyyy/";
  //var_dump($rrr);
  if(eregi('(.)*[.](.)*',$url)){
   $roopath=split("/",$url);
   $rootpath="http://".$roopath[2]."/";
   $nnn=count($roopath)-1;for($yu=3;$yu<$nnn;$yu ){$rootpath.=$roopath[$yu]."/";}
   // var_dump($rootpath); //http: ,'',127.0.0.1,xnml,index.php
   }
   else{$rootpath=$url;//var_dump($rootpath);
  }
  if(isset($url)){
  echo "$url 有下列裢接:<br>";
  $fcontents = file($url);
  while(list(,$line)=each($fcontents)){
  while(eregi('(href[[:space:]]*=[[:space:]]*"?[[:alnum:]:@/._-] [?]?[^"]*"?)',$line,$regs)){
  //$regs[1] = eregi_replace('(href[[:space:]]*=[[:space:]]*"?)([[:alnum:]:@/._-] )("?)',"\2",$regs[1]);
  $regs[1] = eregi_replace('(href[[:space:]]*=[[:space:]]*["]?)([[:alnum:]:@/._-] [?]?[^"]*)(.*)[^"/]*(["]?)',"\2",$regs[1]);
  
  if(!eregi('^http://',$regs[1])){
  
   if(eregi('^..',$regs[1])){
   // $roopath=eregi_replace('(http://)?([[:alnum:]:@/._-] )[[:alnum:] ](.*)[[:alnum:] ]',"http://\2",$url);
  
   $roopath=split("/",$rootpath);
   $rootpath="http://".$roopath[2]."/";
   //echo "这是根本d :"."n";
   $nnn=count($roopath)-1;for($yu=3;$yu<$nnn;$yu ){$rootpath.=$roopath[$yu]."/";}
   //var_dump($rootpath);
   if(eregi('^..[/[:alnum:]]',$regs[1])){
   //echo "这是../目录/ :"."n";
   //$regs[1]="../xx/xxxxxx.xx";
   // $rr=split("/",$regs[1]);
   //for($oooi=1;$oooi<count($rr);$oooi )
  $rrr=$regs[1];
   // {$rrr.="/".$rr[$oooi];
   $rrr = eregi_replace("^[.][.][/]",'',$rrr); /

时间: 2024-09-20 04:07:13

PHP取网页所有链接实现程序代码总结的相关文章

.NET2.0抓取网页全部链接

效果图 后台代码 以下为引用的内容:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using

网页抓取-抓取网页相关的应用程序

问题描述 抓取网页相关的应用程序 我需要抓取海词典典网站上所有四级词汇在"词汇搭配"那一栏的内容,谁能帮我做个解决这个问题的软件,我的QQ邮箱是1036418603@qq.com

PHP实现抓取网页的所有超链接的代码

因为最近要做一个类似专业搜索引擎的东西,需要抓取网页的所有超链接.大家帮忙测试一下子,下面的代码是否可以针对所有的标准超链接. 通用HTML标准超链接参数取得正则表达式测试 因为最近要做一个类似专业搜索引擎的东西,需要抓取网页的所有超链接. 大家帮忙测试一下子,下面的代码是否可以针对所有的标准超链接. 测试代码如下:   <?php  // -------------------------------------------------------------------------- // 

php 抓取新浪新闻的程序代码

首先,需要下载一个simple_html_dom第三方扩展库,具体下载方式和使用详情可以查看:simple_html_dom的使用. 需要环境支持file_get_contents()函数和curl的支持,具体代码如下: <?php  function timingimg($url,$dirname,$interval){   ignore_user_abort(); //浏览器关闭,程序继续执行   set_time_limit(0);//忽略到默认30秒超时   $interval = em

php匹配字符中链接地址程序代码

 判断一个字符串是否含有超级链接  代码如下   $str="ssdsf<a target='_blank' href='http://www.45it.net/' >sdf</a>sdfss"; if(preg_match("/<a/s+href=[^>]*>|<//[^a]*a[^>]*>/i",$str)) { echo "该字符串有超链接"; } else { echo &quo

python正则匹配抓取豆瓣电影链接和评论代码分享_python

复制代码 代码如下: import urllib.requestimport reimport time def movie(movieTag):     tagUrl=urllib.request.urlopen(url)    tagUrl_read = tagUrl.read().decode('utf-8')    return tagUrl_read def subject(tagUrl_read):     '''         这里还存在问题:        ①这只针对单独的一页

php 匹配字符中链接地址程序代码

判断一个字符串是否含有超级链接  代码如下 复制代码 $str="ssdsf<a target='_blank' href='http://www.111cn.net/' >sdf</a>sdfss"; if(preg_match("/<a/s+href=[^>]*>|<//[^a]*a[^>]*>/i",$str)) { echo "该字符串有超链接"; } else { echo &

python抓取网页图片

# -*- coding: utf-8 -*- #--------------------------------------- # 程序:网页图片抓取 # 作者:lqf # 日期:2013-08-10 # 语言:Python 2.7 # 功能:抓取网页jpg链接图片 #--------------------------------------- import re import string import sys import os import urllib url="http://tie

实时抓取网页数据

问题描述 本人非编程出身,跪求大神指导最近在做一个程序,需要用到网页上实时变化的数字进行分析,求一段能实时抓取网页变化数字的程序. 解决方案 解决方案二:轮询可以实现解决方案三:具体点,给个例子解决方案四:写个循环啊......用线程控制时间解决方案五:有类似的例子吗jkdkud