GVKun编程网logo

使用php curl刮一个动态加载的网站(phpcurl取动态网页源码)

4

此处将为大家介绍关于使用phpcurl刮一个动态加载的网站的详细内容,并且为您解答有关phpcurl取动态网页源码的相关问题,此外,我们还将为您介绍关于Java反射之静态加载和动态加载的简单实例、jQ

此处将为大家介绍关于使用php curl刮一个动态加载的网站的详细内容,并且为您解答有关phpcurl取动态网页源码的相关问题,此外,我们还将为您介绍关于Java反射之静态加载和动态加载的简单实例、jQuery:如何wrap()一个动态加载的元素?、mod_xml_curl 动态加载号码,拨号方案、PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例,curl实例_PHP教程的有用信息。

本文目录一览:

使用php curl刮一个动态加载的网站(phpcurl取动态网页源码)

使用php curl刮一个动态加载的网站(phpcurl取动态网页源码)

我是新手,正在废弃两个网站.但是当我试图抓住动态加载网站时,问题出现了.当网站使用JavaScript呈现时,我无法抓取网站的内容.

有什么方法可以使用PHP curl或任何其他与PHP相关的客户端来抓取该网站的内容吗?

这是我到目前为止所做的:

$link = "https://www.glassdoor.com/Job/jobs.htm?suggestCount=0&suggestChosen=false&clickSource=searchBtn&typedKeyword=android+developer&sc.keyword=android+developer&locT=N&Locid=192&jobType=";

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_URL,$link);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
$data = curl_exec($ch);


$document = new DOMdocument();
libxml_use_internal_errors(true);
$document->loadHTML($data);
$elements = $document->getElementsByTagName("div");

foreach($elements as $element){
  	echo $element->nodeValue."<br>";;
}

解决方法:

你需要无头浏览器,你可以使用PHP Wrapper for PhantomJS,这里是链接http://jonnnnyw.github.io/php-phantomjs/.这将解决你的问题.它具有以下功能:

>通过PhantomJS无头浏览器加载网页
>查看详细的响应数据,包括页面内容,标题,状态代码等.
>处理重定向
>查看javascript控制台错误

希望这可以帮助.

Java反射之静态加载和动态加载的简单实例

Java反射之静态加载和动态加载的简单实例

下面小编就为大家带来一篇Java反射之静态加载和动态加载的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

静态加载:

package com.imooc.加载类; public class Office_Static { public static void main(String[] args) { //new 创建对象,是静态加载类,在编译时刻就需要加载所有的可能使用到的类 if("Word".equals(args[0])){ Word w = new Word(); w.start(); } if("Excel".equals(args[0])){ Excel e = new Excel(); e.start(); } } }

这个程序编译时必须有Word和Excel这两个类存在才行,即使判断后用不到Excel也要加载

动态加载:

1、接口OfficeAble :

package com.imooc.加载类; public interface OfficeAble { public void start(); }

 2、Word实现接口:

package com.imooc.加载类; public class Word implements OfficeAble{ public void start(){ System.out.println("word start"); } }

3、Excel实现接口:

package com.imooc.加载类; public class Excel implements OfficeAble{ public void start(){ System.out.println("excel start"); } }

4、Main方法

package com.imooc.加载类; public class OfficeBetter { /** * @param args */ public static void main(String[] args) { try { //动态加载类,在运行时刻加载 Class c = Class.forName(args[0]);//在运行配置里面输入com.imooc.加载类.Excel //通过类类型,创建该类对象(先转换为Word和Excel的共同接口OfficeAble) OfficeAble oa = (OfficeAble)c.newInstance(); oa.start(); //不推荐下面两种,因为不确定是加载Word还是Excel,要强转 // Word word = (Word)c.newInstance(); // word.start(); // Excel excel = (Excel)c.newInstance(); // excel.start(); } catch (Exception e) { e.printstacktrace(); } } }

以上就是小编为大家带来的Java反射之静态加载和动态加载的简单实例的全部内容了,希望对大家有所帮助,多多支持小编~

jQuery:如何wrap()一个动态加载的元素?

jQuery:如何wrap()一个动态加载的元素?

我正在为本地没有 HTML的第三方应用剥皮.这一切都来自onLoad事件和一堆ajax调用.

我在页面中添加了jQuery.我需要wrap()一个动态加载的元素.如果需要,我可以包含一个插件.

我该怎么做呢?谢谢.

更新:
这有效,但还有更好的方法吗?

$(document).ready(function() {

(function() {
  var length = $(".applicationShell").length;

  var h = setInterval(function () {
    if ($(".applicationShell").length > length) {
      length = $(".applicationShell").length;
      clearInterval(h);


      $(".applicationShell").addClass("test")

    }
  },100);
})();


});

解决方法

好吧,似乎我找不到更好的解决方案. :(这是我用过的那个.

$(document).ready(function() {

(function() {
  var length = $(".applicationShell").length;

  var h = setInterval(function () {
    if ($(".applicationShell").length > length) {
      length = $(".applicationShell").length;
      clearInterval(h);


      $(".applicationShell").addClass("test")

    }
  },100);
})();


});

mod_xml_curl 动态加载号码,拨号方案

mod_xml_curl 动态加载号码,拨号方案

mod_xml_curl:

此模块为与Asterisk realtime 机制差不多,可以通过此模让freeswitch 需要时动态访问外部数据库或Web Server.这样可以实现动态控制freeswitch核心。
比如 分机的添加可以通过在数据库配置,freeswitch通过此模块来加载分机。
通过此模块可以绑定:
1 .dialplan
<param name="gateway-url" value="http://localhost:8080" bindings="Dialplan"/>

每次呼叫,系统都会先访问8080

freeswitch安装完成后默认的是用静态配置文件的方式加载号码本

这对于动态注册的用户,无法实时同步
需要系统reloadxml后号码才能呼入

对于商业系统来说这是无法接受的

动态加载
动态方式其实很简单,开发一个http接口给fs调用
fs发去http请求传参数,接口返回http相应
这样就OK了
下面给出具体配置:
第一步 找到 modules.conf.conf 文件 去掉注释

Java代码
  1. <loadmodule="mod_xml_curl"/>

第二步 修改 xml_curl.cong.xml
重点是 http://example1.com:80/fsapi 这个http接口
<configurationname="xml_curl.conf"description="cURLXMLGateway">
  • <bindings>
  • <!--Askexample1.comforadialplanconfig,ifwegetavalidresponse
  • thendon'tcontinueontoexample2.com.Howeverifwedon'tgetavalid
  • response,thencontinueontoexample2.com
  • -->
  • <bindingname="dialplan">
  • <paramname="gateway-url"value="http://example1.com:80/fsapi"bindings="dialplan"/>
  • </binding>
  • <!--Thiswillonlygetcalledifexample1.comreturnsaninvalidor
  • notfoundresponse.Ifthisgatewayalsofailstoreturnavalid
  • configuration,thenFreeSWITCHwilllookforthestaticconfiguration
  • fileondisk
  • <bindingname="dialplanbackup">
  • <paramname="gateway-url"value="http://example2.com:80/fsapi"bindings="dialplan"/>
  • foradirectoryconfig,85); font-weight:bold">ifnotfoundthenrevert
  • todisk
  • <bindingname="directory">
  • <paramname="gateway-url"value="http://example1:80/fsapi"bindings="directory"/>
  • foraconfigurationconfig,250)"> <bindingname="configuration">
  • <paramname="gateway-url"value="http://example1:80/fsapi"bindings="configuration"/>
  • foraphrasesconfig,250)"> <bindingname="phrases">
  • <paramname="gateway-url"value="http://example1:80/fsapi"bindings="phrases"/>
  • </bindings>
  • </configuration>

  • 接口的详细规范请参考 http://wiki.freeswitch.org/wiki/Mod_xml_curl

    PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例,curl实例_PHP教程

    PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例,curl实例_PHP教程

    PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例,curl实例

    获取页面内容,不直接输出到页面,curlopt_returntransfer参数设置   

    使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出。这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true。

    1、curl获取页面内容, 直接输出例子:

    复制代码 代码如下:

    $url = ''http://www.bkjia.com'';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_exec($ch);
    curl_close($ch);
    ?>

    2、curl获取页面内容, 不直接输出例子:

    复制代码 代码如下:

    $url = ''http://www.bkjia.com'';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch); // 已经获取到内容,没有输出到页面上。
    curl_close($ch);
    echo $response;
    ?>

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/954661.htmlTechArticlePHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例,curl实例 获取页面内容,不直接输出到页面,CURLOPT_RETURNTRANSFER参数设置 使用PHP curl获取页面内...

    我们今天的关于使用php curl刮一个动态加载的网站phpcurl取动态网页源码的分享就到这里,谢谢您的阅读,如果想了解更多关于Java反射之静态加载和动态加载的简单实例、jQuery:如何wrap()一个动态加载的元素?、mod_xml_curl 动态加载号码,拨号方案、PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例,curl实例_PHP教程的相关信息,可以在本站进行搜索。

    本文标签:

    上一篇php – CodeIgniter网站上出现“连接太多”错误(php-fpm连接数过多如何解决)

    下一篇带有 XSLT 的 VBA 可以在同一行中漂亮地打印带有结束标记的 XML