123456789101112131415161718192021222324252627282930313233343536373839 |
- <?php
- namespace Spider\Lib\Doc;
- include(DEVER_APP_PATH . 'third/phpQuery.php');
- use Dever;
- use Spider\Lib\Doc as Doc;
- use phpQuery;
- class Dom extends Core
- {
- public static function init($html)
- {
- return phpQuery::newDocumentHTML($html);
- }
- public static function find($dom, $rule)
- {
- $rule = str_replace(array('$', ').'), array('$dom->find', ')->'), $rule);
- $cmd = '$dom = ' . $rule . ';';
- eval($cmd);
- return $dom;
- }
- public static function rule($doc, $dom, $col, $rule)
- {
- $dom = pq($dom);
- $result = $dom->html();
- $rule = explode("\n", $rule);
- if (isset($rule[0]) && $rule[0]) {
- if (isset($col[$rule[0]])) {
- $url = $doc->getUrl($dom, $col, $col[$rule[0]]);
- $doc = Doc::getInstance($url, '')->get();
- array_shift($rule);
- }
- $result = self::find($doc, $rule[0]);
- }
- if (isset($rule[1]) && $rule[1]) $result = parent::match($rule[1], $result);
- return $result;
- }
- }
|