>  기사  >  백엔드 개발  >  컬과 정규식을 사용하는 PHP 스파이더 크롤러

컬과 정규식을 사용하는 PHP 스파이더 크롤러

WBOY
WBOY원래의
2016-07-25 09:08:531145검색
Fengwang fcms 콘텐츠 관리 시스템
get.php 프레임워크 캡처, 웹 콘텐츠 분석 및 처리, 관련 교체 수행
std.php 일반 규칙성
news_67_com.php http://news.67.com에 대한 크롤링 분석기
먼저 목록을 가져온 다음 콘텐츠 페이지를 가져옵니다.
또한 모니터링, 통계, 오류 처리 기능도 부족합니다. 개인적으로는 그게 더 재미있다고 생각해요.
  1. include_once dirname(__FILE__) . '/std.php';
  2. $site = array(
  3. 'aname' => '中国娱乐网',
  4. 'domain' => 'news.67.com',
  5. 'dirname' => '目录名称,用于匹配基于目录不同的正文',
  6. 'gettype' => 'default',
  7. //获取主文件
  8. 'creg' => '/(?si)(.*?)\<\!--文章 end-->/',
  9. 'code' => 'utf-8',
  10. 'sub' => '获取子目录正则',
  11. 'content' => 'tag1',
  12. 'img_upload'=> array('tag1' => ''),
  13. //下一页
  14. 'reg_next' => '/(?is)下一页\>\><\/a>/',
  15. 'key0' => '/(?is)/',
  16. 'key0_ap' => array(array(',', '|'), ' '),
  17. 'tag0' => '/(?is)

    ([^<^>]*?)<\/h1>/',

  18. 'tag0_arp' => array(
  19. array(
  20. '/(?is)\(组图\)/',
  21. '/(?is)\(图\)/',
  22. '/(?is)\(图\.\./',
  23. '/(?is)\(组图\.\./',
  24. '/(?is)\./',
  25. '/(?is)(《|》)/',
  26. ),
  27. array(
  28. '', '', '', '', '', '',
  29. )
  30. ),
  31. 'tag1' => '/(?is)
    (.*?)[^/',
  32. 'tag1_brp' => array(
  33. array(
  34. '/(?is)(.*?)/',
  35. '/(?is)\(.*?\)/',
  36. '/(?is)\s*

    .*?(.*?)<\/p>\s*/',

  37. '/(?is)\s*

    \s*/',

  38. '/(?is)\s*

    \s*/',

  39. '/(?is) /',
  40. '/(?is)
    /',
  41. '/(?is)\s*

    \s*/',

  42. '/(?is)\s*

    \s*/',

  43. '/(?is)\s*
    \s*/',
  44. '/(?is)\s*<\/center>\s*/',
  45. '/(?is)\s*

    \s*/',

  46. ),
  47. array(
  48. '', '', '

    ', '

    ', '

    ', '', '', '

    ', '

    ', '

    ', '

    ', '

    '

  49. ),
  50. ),
  51. 'tag1_arp' => array(
  52. array(
  53. '/(?is)

    <\/p>/',

  54. '/(?is)<\/strong>/'
  55. ),
  56. array(
  57. '', ''
  58. ),
  59. ),
  60. 'strip' => array('tag1' => ''),
  61. 'tag2' => '/(?is)
    导读:\s*(.*?)\s*<\/div>/',
  62. 'tag2_arp' => array(
  63. array(
  64. '/(?is) /'
  65. ),
  66. array(
  67. ''
  68. ),
  69. ),
  70. 'tag3' => '/(?is)(中国娱乐网)/',
  71. 'tag4' => '/(?is)
    日期:(\d+-\d+-\d+ \d+:\d+:\d+).*?<\/div>/',
  72. );
  73. $map = array(
  74. 'tag' => 'key0',
  75. 'title' => 'tag0',
  76. 'content' => 'tag1',
  77. 'summary' => 'tag2',
  78. 'source' => 'tag3',
  79. 'pub_date' => 'tag4',
  80. );
  81. $site_list = array(
  82. 'aname' => '中国娱乐网',
  83. 'domain' => 'www.67.com',
  84. 'gettype' => 'default',
  85. 'creg' => '/(?si)
  86. 'code' => 'gbk',
  87. 'reg_next' => '/(?si)
  88. //链接
  89. 'tag0' => '/(?is)
  90. //标题
  91. 'tag1' => '/(?is)
    .*?([^<^>]*?).*? 'tag1_arp' => array(
  92. array(
  93. '/(?is)(그림)/',
  94. '/(?is)(그림)/' ,
  95. '/(?is)(그림../',
  96. '/(?is)(그림../',
  97. '/(?is)./',
  98. '/( ?is)(《|》)/',
  99. ),
  100. array(
  101. '', '', '', '', '', '',
  102. )
  103. ) ,
  104. );
  105. $list_map = array(
  106. 'url' => 'tag0',
  107. 'title' => 'tag1',
  108. ) ;
  109. $site_list_sub = array();
코드 복사
  1. 전역 $std;
  2. $std = array(
  3. 'url' => '[0-9a-zA-Z. :-/%_#;&] ',
  4. 'img' => '/(?is)/',
  5. );
코드 복사
  1. /**
  2. * test.php
  3. *
  4. * @author xzfred
  5. * @copyright 2009 fengone.com
  6. * @created 2010-12-07 .
  7. * @version $Id: php.php 3 2008-10-10 07:49:21Z fred $
  8. * SVNPath $HeadURL: http://192.168.0.16/svn/vim/skeletons/php.php $
  9. */
  10. /*
  11. include_once "std.php";
  12. include_once "lady_163_com.php ";
  13. */
  14. include_once $GLOBALS['g_dir_core'] . "get.php";
  15. //================= = ================================================ = =============
  16. include_once DIR_HOST_TAG '/tuku_ent_china_com.php';
  17. $obj = new FcHtmlParse($site);
  18. $c = $obj-> ; 구문 분석(file_get_contents("http://tuku.ent.china.com/fun/html/2011-08-23/181703.xml"));
  19. echo "nnn ========= = =========n";
  20. echo $c['field']['tag1'][0];
  21. echo "nnn =========== = =======n";
  22. var_dump($c);
  23. exit();
  24. //목록 테스트
  25. $obj = new FcHtmlParse($site_list);
  26. $c = $obj->parse(file_get_contents("http://tuku.ent.china.com/fun/html/3569_1.html"));
  27. var_dump($c);
  28. 종료();
  29. /*
  30. $obj = new FcHtmlGet($site);
  31. $c = $obj->getPage('http://star.pclady.com. cn /entertainment/ss/1106/703240.html');
  32. var_dump($c);
  33. $obj = new FcHtmlGet($site);
  34. $c = $obj-> getPage ('http://star.pclady.com.cn/entertainment/ss/1106/703240.html');
  35. var_dump($c);
  36. $obj = new FcHtmlParse($site ) ;
  37. $img_obj = 새로운 FcHtmlImgUpload($site);
  38. $data = file_get_contents("e:/b.html");
  39. $c = $obj->parse($ 데이터 );
  40. $ic = $img_obj->upload($c['tag']['tag1'][0]);
  41. var_dump($ic);
  42. $data = file_get_contents("e:/a.html");
  43. $c = $obj->parse($data);
  44. $ic = $img_obj->upload($c['tag'] [ 'tag1'][0]);
  45. var_dump($ic);
  46. */
  47. //var_dump($c['tag']['tag1']);
코드 복사
  1. include_once $GLOBALS['g_dir_core'] . 'host/std.php';
  2. $site = array(
  3. 'aname' => '中华网娱乐图库',
  4. 'domain' => 'tuku.ent.china.com',
  5. 'dirname' => '目录名称,用于匹配基于目录不同的正文',
  6. 'gettype' => 'default',
  7. //获取主文件
  8. 'creg' => '/(?si)(.*?<\/list>)/',
  9. 'code' => 'utf-8',
  10. 'sub' => '获取子目录正则',
  11. 'content' => 'tag1',
  12. 'img_upload'=> array('tag1' => ''),
  13. //下一页
  14. 'reg_next' => '/(?is)
  15. //链接
  16. 'tag0' => '/(?is)
  17. 'tag0_brp' => array(
  18. array(
  19. '/(?is)\.htm/',
  20. ),
  21. array(
  22. '.xml'
  23. )
  24. ),
  25. //标题
  26. 'tag1' => '/(?is)
  27. 'tag1_arp' => array(
  28. array(
  29. '/(?is)\(图\)/',
  30. '/(?is)\"/',
  31. '/(?is)独家:/',
  32. '/(?is)独家:/',
  33. '/(?is)(《|》)/',
  34. ),
  35. array(
  36. '', '', '', '', '',
  37. )
  38. ),
  39. );
  40. $list_map = array(
  41. 'url' => 'tag0',
  42. 'title' => 'tag1',
  43. );
  44. $site_list_sub = array();
复制代码


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.