个人工具
名字空间
变换
操作

CMSware针对DZ/PHPWIND的采集函数

来自站长百科
跳转到: 导航, 搜索

导航:返回上一页

对Discuz的采集

  • 采集索引页有效区域定位规则:
/">最后发表<\/td>(.*)newtopic\.gif/isU
  • 有效内容页URL过虑规则:
/common.gif">[^<>]*<a href=\"([^<>]*)&extra=/isU
  • common.gif 是带有附件的标志,也可以使用这个:
/firstnew.gif.*<a href="([^<>]*)&extra=/isU
  • 标题:
/">标题:([^\n]*)<\/td>/isU
  • 附件地址:
/附件</A>.*"(attachment[^<>]*)\" [^<>]*>[^<>]*\.torrent/isU

.torrent 可以自由更改成你需要的附件种类,gif啦、jpg呀什么的。需要加过滤函数把attachment替换成网站地址

  • 帖子内容:
/<span[^n]*font-size[^n]*>(.*)</tr></table>/isU
  • 缩略图:
/<span[^n]*font- size[^n]*>.*window.open('([^\?]*)').*该附件/isU

以上规则灵活应用,给一个过滤函数

/**
* 替换论坛采集前图片代码
*/
function crawler_clear_bbs_con($str)
{
$clear_pattern = array(
'1' => array(
'pattern'=>"/&\;noupdate=yes/isU"
,'replace'=>""
),
'2' => array(
'pattern'=>"/<img[^<>]*binary.gif[^<>]*>/isU"
,'replace'=>""
),
'3' => array(
'pattern'=>"/<img[^<>]*image.gif[^<>]*>/isU"
,'replace'=>""
),
'4' => array(
'pattern'=>"/<img[^<>]*sigline.gif(.*)<\/td>/isU"
,'replace'=>""
),
'5' => array(
'pattern'=>"/<img[^<>]*common.gif[^<>]*>/isU"
,'replace'=>""
),
'6' => array(
'pattern'=>"/<img[^<>]*text.gif[^<>]*>/isU"
,'replace'=>""
),
'7' => array(
'pattern'=>"/if\(this.width[^)]*\)/isU"
,'replace'=>""
),
'8' => array(
'pattern'=>"/<img[^\n]*src=[^\n]*http:\/\/img\.verycd\.com\/posts/isU"
,'replace'=>"<emuleimg src=\"http://eimg.bt86.com/posts"
),
'9' => array(
'pattern'=>"/onload=\"[^\n]*this\.width[^\n]*\"/isU"
,'replace'=>""
),
'10' => array(
'pattern'=>"/onload='[^\n]*this\.width[^\n]*'/isU"
,'replace'=>""
),
'11' => array(
'pattern'=>"/onmouseover=\"[^\n]*\"/isU"
,'replace'=>""
),
'12' => array(
'pattern'=>"/onmouseover='[^\n]*'/isU"
,'replace'=>""
),
'13' => array(
'pattern'=>"/onclick=\"[^\n]*\"/isU"
,'replace'=>""
),
'14' => array(
'pattern'=>"/onclick='[^\n]*'/isU"
,'replace'=>""
),
'15' => array(
'pattern'=>"/onmousewheel=\"[^\n]*\"/isU"
,'replace'=>""
),
'16' => array(
'pattern'=>"/onmousewheel='[^\n]*'/isU"
,'replace'=>""
),
'17' => array(
'pattern'=>"/src='/isU"
,'replace'=>"src=\""
),
'18' => array(
'pattern'=>"/src=`/isU"
,'replace'=>"src=\""
),
'19' => array(
'pattern'=>"/\.jpg'/isU"
,'replace'=>".jpg\""
),
'20' => array(
'pattern'=>"/\.jpg`/isU"
,'replace'=>".jpg\""
),
'21' => array(
'pattern'=>"/\.gif'/isU"
,'replace'=>".gif\""
),
'22' => array(
'pattern'=>"/\.gif`/isU"
,'replace'=>".gif\""
),
'23' => array(
'pattern'=>"/\.png'/isU"
,'replace'=>".png\""
),
'24' => array(
'pattern'=>"/\.png`/isU"
,'replace'=>".png\""
),
'25' => array(
'pattern'=>"/\.jpeg'/isU"
,'replace'=>".jpeg\""
),
'26' => array(
'pattern'=>"/\.jpeg`/isU"
,'replace'=>".jpeg\""
),
);
foreach($clear_pattern as $key=>$var) {
$str = preg_replace($var['pattern'],$var['replace'], $str);
}
return $str;
} 

对Phpwind的采集

  • 采集索引页有效区域定位规则:
/最后发表</td></tr>(.*)wind /post.gif/isU
  • 有效内容页URL过虑规则:
/<a[^n]*'(read\.php\?tid=[0-9]*)['&]+[^n]*file/zip.gif/isU
  • 标题:
/主题:</b> ([^n]*)</td>/isU
  • 附件:
/<a href='(job\.php\?action=download[^\n]*tid=[0-9]+[^\n]*aid=[0-9]+)'/isU
  • 帖子内容:
/'tpc_content'[^<>]*>(.*)附件: <img/isU
  • 缩略图:
/'tpc_content'.*window[^?]*open(('[^\?]*)').* 附件:/isU 



参考来源

留言