이 글에서는 주로 도메인 간 데이터 캡처를 달성하기 위한 jquery+thinkphp 방법을 소개하고, 도메인 간 데이터 캡처를 달성하기 위해 jQuery의 ajax와 결합된 thinkPHP의 관련 작업 기술을 예제 형식으로 분석합니다. to it
Do it today 데이터를 원격으로 크롤링하는 기능입니다. jquery는 Ajax를 사용하여 원격으로 크롤링할 수 있지만 도메인을 넘을 수는 없다는 점을 기억하세요. 온라인에서 많이 찾았어요. 하지만 포괄적인 것을 만드는 것이 더 낫다고 생각하기 때문에 지금은 간단한 문제가 복잡하다고 생각하지만 적어도 지금은 해결되었습니다.
도메인 전체의 데이터를 로컬 데이터베이스로 가져간 다음 update it asynchronous
제가 구현한 방식은 jquery의 $.post가 서버 백그라운드로 데이터를 보내고, 백그라운드의 PHP 코드가 원격 가져오기를 수행하여 데이터베이스에 저장하고, ajax가 데이터를 프런트 데스크에 반환하는 것입니다. 프런트 데스크는 JS를 사용하여 데이터를 수락하고 표시합니다.
//远程抓取获取数据 $("#update_ac").click(function() { $username = $("#username").text(); $("#AC,#rank,#Submit,#solved,#solved2,#solved3").ajaxStart(function(){ $(this).html("<span class='loading2'> </span>"); }); $.post("update_ac/username/"+$username,{},function($data){ json = eval("(" + $data + ")"); $("#Submit").html(json.data.Submit); $("#AC").html(json.data.AC); $("#solved,#solved2,#solved3").html(json.data.solved); $("#rank").html(json.data.rank); } ),"json"; });
위의 jquery 코드는 4층에서 비교적 명확합니다. 저를 괴롭히는 것은 json 데이터의 수신입니다.
json = eval("(" + $data + ")"); //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
사실 이곳은 아직 프런트 데스크이고, 크로스 도메인 크롤링은 PHP 확장 simple_html_dom을 사용하여 완료됩니다(모르시면 온라인으로 검색하셔도 됩니다. PHP5 기반으로 개발되었습니다)
원격 페이지를 로컬로 잡아보세요.
import("@.ORG.simple_html_dom"); //thinkphp内导入扩展,你要把网上下载的代码改名为simple_html_dom.class.php放到APPNAME\Lib\ORG的目录下面 $html = file_get_html('http://openoj.awaysoft.com/JudgeOnline/userinfo.php?user='.$username); //远程抓取了 $ret = $html->find('center',0)->plaintext; //返回数据了。
위 코드는 핵심 코드일 뿐이며, simple_html_dom은 많은 기능을 확장합니다. 스스로 알아보세요.
반환된 데이터는 문자열이며 정규식을 사용하여 필요한 데이터를 필터링합니다. 다음은 렌더링입니다.
요약: 위 내용은 이 기사의 전체 내용입니다. 모든 사람에게 유용할 수 있기를 바랍니다. 학습 도움.
관련 권장사항:
위 내용은 도메인 간 데이터 캡처를 달성하기 위한 jquery+thinkphp에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!