php抓取jsp网页源代码网页的部分html代码如何替换

1603人阅读
使用phpQuery 可以对HTML 页面进行类似于JQuery 一样的操作。目的是进行HTML 数据的抓取,以及对HTML 文件内容的补充等操作,完全就类似于jQuery 一样的操作。
require_once "../phpQuery/phpQuery.php";
$url = "/";
$html = file_get_contents($url);
phpQuery::newDocumentHtml($html);
$items = pq("div.content-item.clearfix div.item-info.fr");
$ret = [];
foreach ($items as $item) {
$item = pq($item);
$obja = $item-&find("h2.item-tit a");
$objdig = $item-&find("p.item-intro");
$title = pq($obja)-&text();
$url = pq($obja)-&attr('href');
$digest = pq($objdig)-&text();
$ret[] = ['title' =& $title, 'url' =& $url, 'digest' =& $digest];
print_r($ret);
在使用中需要注意的是,通过 pq() 方法获取的才是 phpQuery 对象,在这种情况才能够得到 text(), attr() 之类的方法。如果只是一些 DocumentElement,那么久需要使用 pq() 进行对象转换,然后再使用。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:77575次
积分:1119
积分:1119
排名:千里之外
原创:31篇
转载:11篇
评论:22条
(1)(2)(3)(1)(1)(1)(2)(4)(1)(2)(3)(5)(3)(1)(3)(4)(5)&* php 提取html中图片并替换
//要替换的内容
$content = '&img alt=&& src=&js/fckeditor/UserFiles/image/F.jpg& width=&600& height=&366&&&br&&br&&br&&br&&img alt=&& src=&js/fckeditor/UserFiles/image/33_avatar_middle.jpg& width=&120& height=&120&&';&&
//提取图片路径的src的正则表达式&&
preg_match_all(&/&img(.*)src=&([^&]+)&[^&]+&/isU&,$content,$matches);&&
&& $img = &&;&&
&& if(!emptyempty($matches)) {&&
&& //注意,上面的正则表达式说明src的值是放在数组的第三个中&&
&$img = $matches[2];&&
&& }else {&&
&$img = &&;&&
if (!emptyempty($img)) {&&
&$img_url = &http://&.$_SERVER['SERVER_NAME'];&&
&$patterns= array();&&
&$replacements = array();&&
&foreach($img as $imgItem){&&
&$final_imgUrl = $img_url.$imgI&&
&$replacements[] = $final_imgU&&
&$img_new = &/&.preg_replace(&/\//i&,&\/&,$imgItem).&/&;&&
&$patterns[] = $img_&&
//让数组按照key来排序&&
ksort($patterns);&&
ksort($replacements);&&
//替换内容&&
$vote_content = preg_replace($patterns, $replacements, $content);
大家也可以参考下php正则取图片路径与php取图片路径的正则写法,里面有关于用正则取内容中图片的方法,对理解以上的代码,会有所帮助的。您可能感兴趣的文章:MySQL解决抓取文章的html标签替换及其mysql函数的用法说明
刚刚做完了一个手机客户端的攻略的Html5 Web App页面,新的需求出现了:由于攻略文章是抓取过来的,有很多外链,一开始没有过滤。于是先用PHP写了一个过滤函数,然后批量执行更新相关数据库记录即可。public static function filter_newslink($aid){$content = mod_news :: get_newscont($aid);//先过滤图片的外链$content = preg_replace('/
最新教程周点击榜
微信扫一扫php抓取页面的几种方法详解
字体:[ ] 类型:转载 时间:
本篇文章是对php抓取页面的几种方法进行了详细的分析介绍,需要的朋友参考下
在 做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址, 然后得到html源代码或者xml数据,得到数据我们不能直接输出,往往需要对内容进行提取,然后再进行格式化,以更加友好的方式显现出来。下面简单说一下php抓取页面的几种方法及原理:一、 PHP抓取页面的主要方法:1. file()函数&&& 2. file_get_contents()函数& 3. fopen()-&fread()-&fclose()模式& 4.curl方式& 5. fsockopen()函数 socket模式& 6. 使用插件(如:http://sourceforge.net/projects/snoopy/)二、PHP解析html或xml代码主要方式: 1. file()函数 代码如下:&?php $url=''; $lines_array=file($url); $lines_string=implode('',$lines_array); echo htmlspecialchars($lines_string); 2. file_get_contents()函数使用file_get_contents和fopen必须空间开启allow_url_fopen。方法:编辑php.ini,设置 allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。 代码如下:&?php $url=''; $lines_string=file_get_contents($url); echo htmlspecialchars($lines_string); 3. fopen()-&fread()-&fclose()模式 代码如下:&?php $url=''; $handle=fopen($url,"rb"); $lines_string=""; do{ & & $data=fread($handle,1024);&& & if(strlen($data)==0) {& & & && & } & & $lines_string.=$ }while(true); fclose($handle); echo htmlspecialchars($lines_string);4. curl方式使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分号去掉,而且需 要拷贝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安装curl扩展。 代码如下:&?php $url=''; $ch=curl_init(); $timeout=5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $lines_string=curl_exec($ch); curl_close($ch); echo htmlspecialchars($lines_string);5. fsockopen()函数 socket模式socket模式能否正确执行,也跟服务器的设置有关系,具体可以通过phpinfo查看服务器开启了哪些通信协议,比如我的本地php socket没开启http,只能使用udp测试一下了。 代码如下:&?php&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& $fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);if (!$fp) { & & echo "ERROR: $errno - $errstr&br /&\n"} else { & & fwrite($fp, "\n")& & echo fread($fp, 26)& & fclose($fp)}& 6. 插件网上应该有比较多的插件,snoopy插件是在网上搜到的,有兴趣的可以研究一下。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 c语言抓取网页源代码 的文章

 

随机推荐