php卷曲下载页面一段时间后

时间:2014-02-06 05:43:16

标签: php curl

我使用下面的功能使用curl功能下载网页,效果很好。

目前我正在从网站下载页面。问题是他们正在使用 倒计时为15秒的java脚本。所以可以下载 这个页面经过一段时间后(搜索和头脑风暴对我来说没什么用)?

function curldll($target_url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0)');
    curl_setopt($ch, CURLOPT_URL,$target_url);
    curl_setopt($ch, CURLOPT_FAILONERROR, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 100);
    $html= curl_exec($ch);
    return $html;
}

2 个答案:

答案 0 :(得分:2)

由于页面正在使用javascript计时器来加载内容,所以你无法通过curl来完成它,你可以尝试PhantomJS,这是一个无头的WebKit浏览器,它将完全执行页面并返回动态组装的DOM

答案 1 :(得分:0)

尝试 [DataContract] public class PCDLoggerBinSerializableData: INotifyPropertyChanged { #region CONSTRUCTORS public PCDLoggerBinSerializableData() { } public PCDLoggerBinSerializableData(string _languageInUse, bool _useBubbleNotifications) { LanguageInUse = _languageInUse; UseBubbleNotifications = _useBubbleNotifications; } #endregion #region OPTIONS [DataMember] public string LanguageInUse { get; set; } [DataMember] private bool useBubbleNotifications; public bool UseBubbleNotifications { get { return useBubbleNotifications; } set { useBubbleNotifications = value; Bubble.NoBubblesPlease = !useBubbleNotifications; OnPropertyChange("UseBubbleNotifications"); } } #endregion #region NOTIFIER public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChange(string inName) { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("inName")); } #endregion } 库(Java),它是HtmlUnit以及使用真实浏览器的其他应用的基础。 Selenium无法与cURL合作。或者如果您喜欢JavaScript,请使用PhantomJS