【发布时间】:2017-11-05 00:54:48
【问题描述】:
我正在使用 php 抓取服务器,所以我有网站列表要循环,然后返回每个页面的内容以获取我想要的数据。
部分网站未完全返回的问题,我看到页面完全加载后出现一些数据
我尝试了这两种方法,但我无法获得完整的页面
第一种方法:
$opts = array('http' =>
array(
'method' => 'GET',
'timeout' => 10
) );
$context = stream_context_create($opts);
$html = file_get_contents('some url',false,$context);
echo $html;
第二种方法
$html = implode('',file('some url'));
echo $html;
我只想在页面加载后1或2秒后返回页面内容。
以url 为例,我无法获得搜索结果
:结果
新闻 照片 视频 标签 按日期过滤
前因后果
【问题讨论】:
-
这通常是通过 JavaScript 加载的结果。您需要通过可以在无头模式下运行 JavaScript(如 PhantomJS 或 Chrome)的东西进行抓取。
-
您是说您的脚本仅从您点击的 url 中获取部分 html?我以前没有遇到过这种情况,它通常在我的使用中得到全部或全部。奇怪的。你试过卷曲抓取吗?它有更多你可以玩弄的设置。
-
@Randall 是的,它不会返回整页,我只是尝试使用 curl,它似乎是一样的
-
@apokryfos 我将尝试使用 PhantomJS
标签: php web-scraping