【发布时间】:2014-09-04 09:03:45
【问题描述】:
我正在做一个项目,但我对一件事有疑问。 由于数据量大,我要进行屏幕抓取的网页的加载时间约为 5-10 秒。
当我尝试使用 PHP Simple HTML DOM Parser 进行屏幕抓取时,我没有得到任何结果。 屏幕为空白。我使用的所有元素都可以,因为当我从同一网站进入另一个页面时,该页面在几行起始行中具有完全相同的代码,一切正常。
是否有机会等待网站完成加载然后屏幕抓取。
谢谢
我的代码是:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<?php
error_reporting(0);
include_once('../../simple_html_dom.php');
function scraping_slashdot() {
// create HTML DOM
$html = file_get_html('http://www.examplepage.com/');
// get article block
foreach($html->find('div[id="rightBlock"]') as $article) {
// get title1
$item['title1'] = $article->find('div.[class="inputHead"]', 0)->plaintext;
$ret[] = $item;
}
// clean up memory
$html->clear();
unset($html);
return $ret;
}
// -----------------------------------------------------------------------------
//output
$ret = scraping_slashdot();
foreach($ret as $v) {
echo $v['title1'];
}
?>
</body>
</html>
【问题讨论】:
-
在发布新问题之前检查其他类似问题...即:stackoverflow.com/q/7620955/1519058
-
我检查了但没有解决我的问题。是否可以添加 sleep();在代码的某个地方?我正在尝试几种组合,但无法使其发挥作用。
-
尝试增加MAX_FILE_SIZE,如果还是不行,尝试用curl代替这个例子中的chown:stackoverflow.com/a/21186309/1519058
-
@Rhck,你解决了这个问题吗?
标签: php html parsing dom simple-html-dom