JP5695027B2 - Ajaxウェブページコンテンツを取得する方法およびシステム - Google Patents

Ajaxウェブページコンテンツを取得する方法およびシステム Download PDF

Info

Publication number
JP5695027B2
JP5695027B2 JP2012503668A JP2012503668A JP5695027B2 JP 5695027 B2 JP5695027 B2 JP 5695027B2 JP 2012503668 A JP2012503668 A JP 2012503668A JP 2012503668 A JP2012503668 A JP 2012503668A JP 5695027 B2 JP5695027 B2 JP 5695027B2
Authority
JP
Japan
Prior art keywords
javascript
web page
code
ajax
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012503668A
Other languages
English (en)
Other versions
JP2012523047A (ja
Inventor
ウェン マオ
ウェン マオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2012523047A publication Critical patent/JP2012523047A/ja
Application granted granted Critical
Publication of JP5695027B2 publication Critical patent/JP5695027B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本出願は、参照によりその全体が組み込まれる「METHOD AND SYSTEM OF RETRIEVING AJAX WEB PAGE CONTENT」という名称の2009年4月2日に出願された中国特許出願第200910133630.5号の優先権の利益を主張する。
本開示は、ネットワーキング技術に関し、より詳細には、Ajaxウェブページコンテンツを取得する方法およびシステムに関する。
非同期JavaScriptおよびXML(Ajax)は、対話型ウェブページアプリケーションを作成するためのウェブページ開発技術である。従来のウェブページでは、ウェブページコンテンツの一部分が更新される場合、ユーザは、ウェブページ全体がリフレッシュされた後にだけ、更新されたコンテンツを見ることができる。しかし、Ajaxウェブページを用いると、ユーザは、ウェブページ全体をリフレッシュすることなく、コンテンツの更新された部分を入手することができる。ネットワークデバイスの観点から見ると、これは、変更されていない情報を反復して送信することを回避し、したがって、ネットワーク帯域幅を節約し、サーバ作業負荷を低減する。ユーザの観点から見ると、ウェブページブラウジング中の待ち時間を、効果的に低減されることができ、したがって、ユーザ体験が改善される。
検索エンジンは、検索サービスをユーザに提供する能力を用いて、インターネット情報を収集し、整理し、処理することができるシステムである。現在、検索エンジンは、ユーザのためのインターネットサーフィング体験の必要不可欠な補助ツールの1つになっている。検索エンジンの重要なコンポーネントであるウェブクローラは、ウェブページコンテンツを自動的に取得し、リアルタイムに更新されたデータを検索エンジンに提供することができる。従来のウェブページがサポートされることができるが、既存のウェブクローラは、Ajaxウェブページ上でAjaxによって動的に生成されるコンテンツを効果的に取得することができない。結果として、Ajaxウェブページ上の動的コンテンツは、検索エンジンによって収集されることができず、検索エンジンが、完全なコンテンツ検索サービスをユーザに提供することにできないことになる。
本開示は、Ajaxウェブページコンテンツを取得し、検索エンジンがAjaxウェブページ内の動的コンテンツを収集することができないことについての解決策を提供する方法およびシステムを提供する。技術スキームが、次の通りに述べられる。
本開示は、Ajaxウェブページコンテンツを取得する方法を提供し、方法は、
ウェブページコードの情報を入手すること、
ウェブページコードのJavaScript情報を取得すること、
ウェブページコードにおけるAjaxコールを含む関数を確定するために、JavaScript情報を解析すること、および、
ウェブページコンテンツを入手するために、Ajaxコールを含む関数を起動させることを含む。
本開示は、さらに、Ajaxウェブページコンテンツを取得するシステムを提供し、システムは、
ウェブページコードの情報を入手するために使用されるウェブページコンテンツ収集ユニットと、
ウェブページコードのJavaScript情報を取得するために使用されるスクリプト取得ユニットと、
ウェブページコードにおけるAjaxコールを含む関数を確定するために、JavaScript情報を解析するために使用されるスクリプト解析ユニットと、
ウェブページコンテンツを入手するために、Ajaxコールを含む関数を起動させるために使用されるウェブページコンテンツ収集ユニットとを含む。
ウェブページコード内のJavaScript情報を解析することによって、上記技術スキームは、ウェブページコードにおけるAjaxコールを含む関数を入手し、それにより生成されるウェブページコンテンツを入手するために、関数をさらに起動させ、そのようにして、Ajaxウェブページ内の動的コンテンツの取得を達成する。上記技術スキームを使用して、検索エンジンは、より完全なウェブページコンテンツを収集し、したがって、よりよい検索サービスを提供することができる。
本開示の例示的な実施形態による、Ajaxウェブページコンテンツを取得する方法のフローチャートを示す図である。 本開示の例示的な実施形態による、ウェブページコードのJavaScript情報を取得する方法のフローチャートを示す図である。 本開示の例示的な実施形態による、Ajaxウェブページコンテンツを取得するシステムの略構造図を示す図である。 本開示の例示的な実施形態による、スクリプト取得用ユニットの略構造図を示す図である。 本開示の例示的な実施形態による、スクリプト解析用ユニットの略構造図を示す図である。
本開示で提供される技術スキームを当業者が理解することができるようにするため、本開示の実現方法が、添付図面を使用してさらに詳細に以下で述べられる。
図1は、本開示の例示的な実施形態による、Ajaxウェブページコンテンツを取得する方法のフローチャートを示す。方法は、以下の手順を含む。
S101 ウェブページコードの情報を入手する。
このブロックは、従来のウェブクローラの作業メカニズムに類似する。URL(すなわち、ユニフォームリソースロケータ)アドレスを通して、アドレスに対応するウェブページコードの情報がネットワークから読み取られる。
S102 ウェブページコードのJavaScript情報を取得する。
ウェブページコードの情報を入手すると、その中のJavaScript情報が最初に取得される。例としてHTML(すなわち、ハイパーテキストマークアップ言語)を使用する。一般に、JavaScript情報をHTMLコードに付加するために、以下の2つの手法が使用され得る。
1)JavaScriptコードをHTMLコードに直接埋め込むこと、または、
2)JavaScriptコードを外部ファイルに配置し、HTMLコードで外部ファイルを参照すること。
具体的に、第1の手法に関して、JavaScriptコードは、HTMLコードのタグ対である<script>と</script>との間に配置することができる。一般的な書式は、次の通りに示される。
<script type=“text/javascript”>
//jsコード
</script>
上記書式の<script>タグ対の中の部分は、JavaScriptコードに対応する。複数のJavaScript文が、<script>タグ対の中に含まれ得る。<script>タグは、HTMLコードの<head>部またはHTMLコードの<body>部に現れ得る。
第2の手法については、JavaScriptコードが、外部ファイル内に配置される。この外部ファイルは、その後、HTMLコードの<script>タグのsrc属性を通して参照される。一般的な書式は、以下に示される。
<script type=“text/javascript”src=“js/text.js ”> </script>
src属性の値は、JavaScriptファイルの記憶パスおよびファイル名を定義する。記憶パスは、絶対パスであってもよく、または、相対パスであってもよい。上記書式の“text.js”は、参照されているJavaScriptファイル名を指し、一方、“js/”は、そのファイルの記憶パスを指す。JavaScriptファイルは、一般に、その拡張名として.jsを使用し、<script>タグまたは他のHTMLタグを持たないJavaScriptコードのみを含む。
上記2つの手法に基づいて、HTMLコード内のJavaScript情報は、ウェブページコード内の<script>タグをチェックすることによって取得することができる。図2に示すように、ウェブページコードのJavaScript情報を取得する方法は、以下の手順を含む。
S102a ウェブページコード内のJavaScriptタグをチェックする。
S102b JavaScriptタグの後に位置するJavaScript情報のタイプを確定する。タイプがJavaScriptコードに対応する場合、S102cが実行される。タイプがJavaScriptファイルに対応する場合、S102dが実行される。
S102c JavaScriptタグの対内のJavaScriptコードを取得する。
S102d JavaScriptファイルの記憶パスおよびファイル名を取得する。
HTMLファイルコード内の<script>タグの全てのノードについて上記手順を実行すると、いくつかのJavaScriptコードおよび/またはJavaScriptファイルならびに各記憶パスが入手される。取得された全てのJavaScriptコードは、一時的な.jsファイル(たとえば、temp.js)に記憶されてもよい。JavaScriptファイルに関して、本開示の技術スキームにおいては、JavaScriptファイルの全てのコードを解析することは、必要とされない。取得されたJavaScriptファイル名および各記憶パスだけが、このブロックで記憶され得る。
S103 ウェブページコードにおけるAjaxコールを含む関数を確定するために、JavaScript情報を解析する。
一般に、2つのタイプのJavaScriptファイルが、ウェブページコード内で参照される。1つのタイプは、JavaScriptフレームワークドキュメントを指す。このタイプのファイルは、一般に、たとえばprototype.jsなどの、固定ファイル名を有する。別のタイプは、非JavaScriptフレームワークドキュメントを指す。ウェブページコード内で、Ajaxコールを含む関数は、非JavaScriptフレームワークドキュメントで定義される。したがって、JavaScriptフレームワークドキュメントの内容は、さらに解析される必要がない可能性がある。しかし、そのフレームワークタイプに対応する属性値は、そのファイル名に基づいて見出されることができる。さらに、Ajaxコールを含み、非JavaScriptフレームワークドキュメントで定義される関数は、これらの属性値を使用して見出され得る。さらに、ウェブページコードにおけるAjaxコールを含む関数は、そこで、見出され得る。具体的な手順が、次の通りに示される。
S103a JavaScriptファイルのファイル名に基づいてJavaScriptファイルのファイルタイプを確定する。
上記方法に従って、JavaScriptファイルがフレームワークドキュメントであるかまたは非フレームワークドキュメントであるかについての判定が行われる。フレームワークドキュメントであると判定されると、対応する属性値が入手される。
S103b Ajaxコールを含み、Ajax属性値に基づいて非JavaScriptフレームワークドキュメントで定義される関数を確定する。
JavaScriptファイルでは、Ajaxコールを含む全ての関数は、Ajax属性値と呼ばれる特定のコード部を含まなければならない。したがって、関数がAjaxコールを含むかどうかは、関数がこれらの属性値を含むかどうかに基づいて決定することができる。
Ajax属性値は、2つのタイプに分類され得る。種々のタイプのJavaScriptフレームワークに対応する上述の属性値以外に、いかなるタイプのJavaScriptフレームワークを使用することなくAjaxがコールされる状況下では、他の属性値が存在する。これらの後者の属性値は、前もってデータベースファイルに記憶されてもよい。非JavaScriptフレームワークドキュメント内の関数のコードを、これらの属性値と照合することによって、Ajaxコールを含む関数を、確定することができる。
S103c S103bの結果に基づいてウェブページコード内にAjaxコールを含む関数をさらに確定する。
ウェブページコードで使用される関数が集合Aを構成し、S103bにてAjaxコールを含むと判定された関数が集合Bを構成するという仮定が行われる。AとBとの重なりが、ウェブページコード内にAjaxコールを含む必要とされる関数に対応する。ウェブページ内でコールされない関数、すなわち、集合Bに属するが集合Aに属しない関数は、さらなる処理を受ける必要がない可能性がある。
S102にて入手されるJavaScript情報が、JavaScriptなしのJavaScriptコードだけを含む場合、S103aは省略されてもよいことが留意されるべきである。さらに、上述のようにJavaScriptコードを記憶するために使用される一時的ファイル、temp.jsは、非フレームワークドキュメントとしてここで処理されてもよい。
S104 ウェブページコンテンツを入手するために、Ajaxコールを含む関数を起動させる。
どの関数が、ウェブページコードにおいてAjaxコールを含むかを判定すると、Ajaxによって動的に生成されるウェブページコンテンツは、これらの関数を起動させることによって入手することができる。
Ajaxコールを含むいくつかの関数が、ユーザの操作によって、たとえばマウスクリックまたは選択によって起動される。これらの操作は、ブラウザの操作をシミュレートすることによって実現され得る。具体的には、ある種のWeb自動化試験ツールによって提供されるAPI(すなわち、アプリケーションプログラミングインタフェース)が、ブラウザ内でユーザによって行われる適切な操作をシミュレートするために使用されてもよい。たとえば、S101〜S103の上記手順によって、http://www.test.com上の関数getinfoが、Ajaxコールを含むことが見出され得、その関数は、マウスクリックによって起動される。したがって、以下の方法は、この関数の起動をシミュレートするために使用され得る。
IE ie=new IE();
//ブラウザを開く操作をシミュレートする
Ie.start(http://www.test.com);
// http://www.test.comをブラウザに入力して、このウエブページを開くことをシミュレートする
Htmlelement e=ie.htmlElement(attribute(“onclick”, “getInfo”));
//クリック時に呼ばれるJavaScript関数であるgetInfoの要素ノードが見出される
e.click();
//マウスを通して要素ノードをクリックする操作をシミュレートする
マウスクリックをシミュレートすると、関数が起動され、この関数によって動的に生成されるコンテンツを、それに対応して入手することができる。
ウェブページコード内のJavaScript情報を解析することによって、上記技術スキームは、ウェブページコードにおけるAjaxコールを含む関数を入手し、さらにそれにより生成されるウェブページコンテンツを入手するためにその関数を起動させ、そのようにして、Ajaxウェブページ内の動的コンテンツの取得を達成する。上記技術スキームを使用して、検索エンジンは、より完全なウェブページコンテンツを収集し、したがって、よりよい検索サービスをユーザに提供することができる。
本開示に従ってAjaxウェブページコンテンツを取得する方法は、具体的な例となる実施形態を使用して以下で説明される。S201〜S204の詳細は、S101〜S104の対応するテキスト記述に見出すことができる。
S201 ウェブページコードの情報を入手する。
あるウェブページの以下のコード情報が、URLアドレスに基づいて入手されると仮定する。
<!DOCTYPE HTML PUBLIC”-//W3C//DTD HTML 4.01//EN”
”http://www.w3.org/TR/html4/strict.dtd”>
<html lang=”en”>
<head>
<script type=”text/javascript”src=” ja/prototype.js”/>
<script type=”text/javascript”src=” ja/ajax.js”/>
<title>AJAX,Web2.0example</title>
<link rel=”stylesheet ”type=” text/css”href=” css/style.css”/>
</head>
<body>
<div id=”navhover”>
<img src=”img/hammer.jpg ”alt=”Builders ”>
<img src=”img/lightbulb.jpg ”alt=”Electricians ”>
<img src=”img/wrentch.jpg ”alt=”Pumbers”>
<img src=”img/taxi.jpg ”alt=”Taxis”>
</div>
<div id=”nav”>
<ul>
<li><a href=”♯”onclock=”getInfo(1);”id=”nav1”
title=”Electricians ”><span>Builders</span></a></li>
<li><a href=”♯”onclock=”getInfo(2);”id=”nav”
title=”Plumbers ”><span> Electricians </span></a></li>
<li><a href=”♯”onclock=”getInfo(3);”id=”nav3”
title=” Builders”><span> Plumbers </span></a></li>
</ul>
<ul>
<li><img src=”img/taxi.jpg ”onclick=’getinfo(4);’id=”img ”
name=”img ”style=”cursor:hand ”></li>
</ul >
</div >
<div id=”rusult”>Search results…</div>
</body>
</html>
この例示的な実施形態で提供される実際のコードは、開示される技術スキームを例証することを意図するに過ぎず、技術スキームの制限として解釈されるべきでないことを留意すべきである。
S202 ウェブページコードのJavaScript情報を取得する。
S202の記述によれば、上記コードは、直接埋め込まれたJavaScriptコードを持たないことが見出される。しかし、JavaScriptファイル、すなわち、<head>部内に位置する2つのファイル“prototype.js”および “ajax.js”が参照される。これらの2つのファイルのパスおよびファイル名などの情報が記憶され得る。
S203 ウェブページコードにおけるAjaxコールを含む関数を確定するためにJavaScript情報を解析する。
S203aは、S202にて取得されたこれらの2つのJavaScriptファイルのファイル名に基づいて、“prototype.js”がフレームワークドキュメントであり、 “ajax.js”が非フレームワークドキュメントであると判定し得る。
参照される2つのJavaScriptファイルのタイプに基づいて、S203Bは、Ajaxコールが存在する場合、2つの関連するAjax属性値がおそらくウェブページ内に存在することを知る。第1のタイプは、“new Ajax.Request”としてその属性値を有するプロトタイプフレームワークで提供されるAjax呼び出しメッソドである。
別のタイプは、JavaScriptフレームワークが使用されない状況に対応する。各属性値は、
“new ActiveObject(“Microsoft.XMLHTTP”)”
である。
非フレームワークドキュメントである“ajax.js”が、ここでさらに解析される。“ajax.js”のコードのコンテンツが次の通りであると仮定する。
Function getinfo(id){
Var xmlhttp;
try{
xmlhttp=new XMLHttpRequest();
}catch(e){
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
xmlhttp.onreadystatechange=function(){
if(xmlhtt.readyState=1){
document.getElementById(’results’).innerHTML=’loading…’;
}
if(xmlhtt.readyState=4){
var response=xmlhttp.responseText;
document.getElementById(’results’).innerHTML=response;
}
}
xmlhttp.open(’get ’, ’data.jsp?company=’+id,true)
xmlhttp.send(”company=”+id);
}
function getDate()
{
var date=new Date();
var year=date.getYear();
var month=date.getMonth()+1;
var date=date.get Day();
return
year+” ”+(month>=10?month(”0 ”+ ” ”+month))+ ” ”+(day>=10?day: (”0 ”+ ” ”+day));
}
function getDate Time()
{
var date=new Date();
var localString=date.toLocaleString();
return LocaleString;
}
function sameToBilling(obj)
{
var my=new Ajax.Request(url,
{
method: ’get’,
parameters:pars,
asynchronous:true,
onComplete:showResponse
});
}
4つの関数が、“ajax.js”内で定義され、それらは、それぞれgetInfo()、getData()、getDateTime()、およびsameToBilling()である。さらに、属性値である“new ActiveXObject(“Microsoft.XMLHTTP”) ”および“new Ajax.Request ”が、getInfo()関数および sameToBilling()関数内にそれぞれ現れる。結果として、getInfo()および sameToBilling()は、Ajaxコールを含む関数であることを判定することができる。
S203cは、getInfo()が、集合A(ウェブページコードで使用される関数の)と集合B(参照されるJavaScriptファイル内にAjaxコールを含む関数の)の重なりに基づいて、ウェブページコード内にAjaxコールを含む関数であると判定し得る。他方、sameToBilling()関数は、ウェブページ内でコールされなかったため、さらに処理されない可能性がある。
S204 ウェブページコンテンツを入手するために、Ajaxコールを含む関数を起動させる。
getInfo()は、それにより生成されるウェブページコンテンツを入手するために、onclick(すなわち、マウスクリック)操作をシミュレートすることによって起動される。
上記の例示的な実施形態に示すように、本開示で提供される技術スキームは、ウェブページコードおよびAjax属性値を解析することによって、どの関数(参照されたファイル内で定義される)がAjaxコールを含むかを判定する。そのスコープ内で、関連するウェブページ内で実際にコールされる関数が見出される。さらに、ウェブページコンテンツは、これらの関数の実行をシミュレートすることによって入手され、そうすることにより、ウェブページコンテンツに関連しない関数の実行を回避する。結果として、動的ウェブページコンテンツを取得する効率が改善される。
上記例示的な方法に対応して、本開示の例示的な実施形態はさらに、Ajaxウェブページコンテンツを取得するシステムを提供する。図3に示すように、システムは、
ウェブページコードの情報を入手するために使用されるウェブページコンテンツ収集ユニット310と、
ウェブページコードのJavaScript情報を取得するために使用されるスクリプト取得ユニット320と、
ウェブページコードにおけるAjaxコールを含む関数を確定するために、JavaScript情報を解析するために使用されるスクリプト解析ユニット330と、
ウェブページコンテンツを入手するために、Ajaxコールを含む関数を起動させるために使用されるウェブページコンテンツ収集ユニット340とを含む。
JavaScript情報は、JavaScriptファイルおよび/またはJavaScriptコードを含んでもよい。
図4に示すように、スクリプト取得ユニット320は、
ウェブページコード内でJavaScriptタグをチェックするために使用されるチェック用サブユニット321と、
JavaScriptタグの後に位置するJavaScript情報が、JavaScriptコードに対応するとき使用される、JavaScriptコードを取得し、取得されたJavaScriptコードをJavaScriptファイルに記憶する第1の取得用サブユニット322と、
JavaScriptタグの後に位置するJavaScript情報が、JavaScriptファイルに対応するとき使用される、JavaScriptファイルの記憶パスおよびファイル名を取得する第2の取得用サブユニット323とを含んでもよい。
図5に示すように、スクリプト解析ユニット330は、
Ajaxコールを含み、Ajax属性値に基づいて前記JavaScriptファイル内で定義される関数を確定するために使用される第1の確定用サブユニット331であって、Ajax属性値は、ある関数内でAjaxコールの存在を示すコードセグメントを指す、第1の確定用サブユニット331と、
第1の確定用サブユニット331によって確定された関数の中から、ウェブページコードのおけるAjaxコールを含む関数をさらに確定するために使用される第2の確定用サブユニット332とを含む。
Ajax属性値は、あるタイプのJavaScriptフレームワークを使用したAjaxコールに対応する属性値、および/または、いかなるタイプのJavaScriptフレームワークをも使用することなくAjaxコールに対応する属性値を含んでもよい。
第1の確定用サブユニット331は、Ajaxコールを含み、ウェブページ内で参照される非JavaScriptフレームワークドキュメント内で定義される関数を確定するために使用され得る。
ウェブページコンテンツ収集ユニット340は、ユーザ操作をシミュレートすることによって、ウェブページコンテンツを入手するために、Ajaxコールを含む関数を起動させるために使用されてもよい。
例示的な方法との基本的な対応のために、例示的なシステムは、比較的簡単な方法で説明されている。例示的なシステムの詳細は、例示的な方法の関連部分に対して参照することができる。上記例示的なシステムの説明は、例証を意図されるに過ぎない。本明細書で別個の要素として述べるユニットは、物理的な意味で別個であっても、なくてもよい。ユニットによって示す要素は、物理的ユニットであっても、なくてもよい、すなわち、1つの場所に位置してもよく、または、複数のネットワークユニット間分散されてもよい。実際のニーズに基づいて、例示的な実施形態の目標は、モジュールの複数の部分または全てを選択することによって達成され得る。当業者は、開示されるシステムを理解し、革新的な作用がない状態で実現することができる。
説明のために、上記システムは、別々に述べられた種々のユニットに分割された。種々のユニットの機能は、開示されるシステムを実現するとき、1つまたは複数のソフトウェアおよび/またはハードウェアで実現されてもよい。
上述した例示的な実施形態から、開示される方法およびシステムは、ソフトウェアおよび汎用ハードウェアプラットフォームを使用して実現されてもよいことを当業者は明確に理解することができる。この理解に基づいて、本開示の技術スキームまたは既存の技術に寄与する部分は、ROM/RAM、ディスク、およびドライブなどの記憶媒体に記憶されるソフトウェア製品の形態で実現されてもよい。ソフトウェアは、コンピューティングデバイス(たとえば、パーソナルコンピュータ、サーバ、またはネットワークデバイス)が、種々の例示的な実施形態または本開示の例示的な実施形態の一定の部分に述べる方法を実行するための命令を含む。
上記は、本開示の少数の例示的な実施形態に過ぎない。当業者は、本開示の趣旨および範囲から逸脱することなく、多くの異なる方法で本開示を変更するかまたは修正することができることが理解される。これらの変更および修正は、本開示の特許請求の範囲およびその均等物内に入ると考えられるべきである。

Claims (6)

  1. 非同期JavaScriptおよびXML(Ajax)ウェブページコンテンツを取得する方法であって、
    ウェブページコードの情報を入手すること、
    前記ウェブページコードの情報からJavaScript情報を取得することであって、前記JavaScript情報は、1つまたは複数のJavaScriptファイル、JavaScriptコード、またはその組合せをを含むことと
    前記ウェブページコード内で、少なくとも1つのAjaxコールを含む少なくとも1つの関数を確定するために、前記JavaScript情報を解析すること、および、
    前記少なくとも1つのAjaxコールを含む前記確定された少なくとも1つの関数によって生成されるウェブページコンテンツを入手するために、前記確定された少なくとも1つの関数を起動させることを含み、
    前記ウェブページコード内で、少なくとも1つのAjaxコールを含む少なくとも1つの関数を確定するために、前記JavaScript情報を解析することは、
    Ajax属性値に基づいて、前記少なくとも1つのAjaxコールを含み、少なくとも1つJavaScriptファイル内で定義される少なくとも1つの関数を確定することであって、前記Ajax属性値は、前記Ajaxコールについてのコードセグメントを含む関数を示すこと、および、
    前記少なくとも1つのAjaxコールを含み、前記少なくとも1つのJavaScriptファイル内で定義される前記確定された少なくとも1つの関数から、前記ウェブページコード内で前記Ajaxコールを含む関数を確定することを含む方法。
  2. 前記ウェブページコードの情報から前記JavaScript情報を取得することは、
    前記ウェブページコード内でJavaScriptタグをチェックすること、
    前記ウェブページコードの情報から取得され、前記JavaScriptタグの後に位置する前記JavaScript情報が、JavaScriptコードを含むとき、
    前記JavaScriptコードを取得し、
    前記取得されたJavaScriptコードをJavaScriptファイルに記憶すること、および、
    前記ウェブページコードの情報から取得され、前記JavaScriptタグの後に位置する前記JavaScript情報が、JavaScriptファイルを含むとき、前記JavaScriptファイルの記憶パスおよびファイル名を取得することを含むことを特徴とする請求項に記載の方法。
  3. 前記少なくとも1つのAjaxコールを含む前記確定された少なくとも1つの関数を起動させることは、
    前記少なくとも1つのAjaxコールを含む前記確定された少なくとも1つの関数を起動させるために、ユーザ操作をシミュレートすることを含むことを特徴とする請求項1に記載の方法。
  4. 非同期JavaScriptおよびXML(Ajax)ウェブページコンテンツを取得するシステムであって、
    ウェブページコードの情報を入手するウェブページコンテンツ収集ユニットと、
    前記ウェブページコードの情報からJavaScript情報を取得するスクリプト取得ユニットであって、前記JavaScript情報は、1つまたは複数のJavaScriptファイル、JavaScriptコード、またはその組合せを含む、スクリプト取得ユニットと、
    前記ウェブページコード内に少なくとも1つのAjaxコールを含む少なくとも1つの関数を確定するために、前記JavaScript情報を解析するスクリプト解析ユニットと、
    前記確定された関数によって生成されるウェブページコンテンツを入手するために、少なくとも1つのAjaxコールを含む前記確定された関数を起動させるウェブページコンテンツ収集ユニットとを備え
    前記スクリプト解析ユニットは、
    Ajax属性値に基づいて、前記少なくとも1つのAjaxコールを含み、少なくとも1つのJavaScriptファイル内で定義される少なくとも1つの関数を確定する第1の確定用サブユニットであって、前記Ajax属性値は、前記Ajaxコールについてのコードセグメントを含む関数を示す、第1の確定用サブユニットと、
    前記第1の確定用サブユニットによって確定された前記少なくとも1つの関数から、Ajaxコーリング関数が前記ウェブページコード内に含まれることを確定する第2の確定用サブユニットとを備えるシステム。
  5. 前記スクリプト取得ユニットは、
    前記ウェブページコード内でJavaScriptタグをチェックするチェック用サブユニットと、
    前記ウェブページコードの情報から取得され、前記JavaScriptタグの後に位置する前記JavaScript情報が、JavaScriptコードを含むとき、前記JavaScriptコードを取得し、前記取得されたJavaScriptコードをJavaScriptファイルに記憶する第1の取得用サブユニットと、
    前記ウェブページコードの情報から取得され、前記JavaScriptタグの後に位置する前記JavaScript情報が、JavaScriptファイルを含むとき、前記JavaScriptファイルの記憶パスおよびファイル名を取得する第2の取得用サブユニットとを備えることを特徴とする請求項に記載のシステム。
  6. ウェブページコンテンツ収集ユニットは、
    前記少なくとも1つのAjaxコールを含む前記少なくとも1つの関数によって生成される前記ウェブページコンテンツを入手するために、前記少なくとも1つのAjaxコールを含む前記確定された少なくとも1つの関数を起動させるために、ユーザ操作をシミュレートすることをさらに含むことを特徴とする請求項に記載のシステム。
JP2012503668A 2009-04-02 2010-03-31 Ajaxウェブページコンテンツを取得する方法およびシステム Active JP5695027B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200910133630.5 2009-04-02
CN2009101336305A CN101515300B (zh) 2009-04-02 2009-04-02 一种Ajax网页内容的抓取方法及系统
PCT/US2010/029444 WO2010114913A1 (en) 2009-04-02 2010-03-31 Method and system of retrieving ajax web page content

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015021591A Division JP5990605B2 (ja) 2009-04-02 2015-02-05 Ajaxウェブページコンテンツを取得する方法およびシステム

Publications (2)

Publication Number Publication Date
JP2012523047A JP2012523047A (ja) 2012-09-27
JP5695027B2 true JP5695027B2 (ja) 2015-04-01

Family

ID=41039753

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012503668A Active JP5695027B2 (ja) 2009-04-02 2010-03-31 Ajaxウェブページコンテンツを取得する方法およびシステム
JP2015021591A Active JP5990605B2 (ja) 2009-04-02 2015-02-05 Ajaxウェブページコンテンツを取得する方法およびシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015021591A Active JP5990605B2 (ja) 2009-04-02 2015-02-05 Ajaxウェブページコンテンツを取得する方法およびシステム

Country Status (6)

Country Link
US (2) US8413044B2 (ja)
EP (1) EP2414929A4 (ja)
JP (2) JP5695027B2 (ja)
CN (1) CN101515300B (ja)
HK (1) HK1136053A1 (ja)
WO (1) WO2010114913A1 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539337B2 (en) * 2008-02-21 2013-09-17 International Business Machines Corporation Internet services and methods thereof
US8898623B2 (en) * 2008-12-30 2014-11-25 The Regents Of The University Of California Application design and data flow analysis
CN101515300B (zh) 2009-04-02 2011-07-20 阿里巴巴集团控股有限公司 一种Ajax网页内容的抓取方法及系统
CN102005130B (zh) * 2009-09-03 2014-01-22 上海宝信软件股份有限公司 基于WebGIS的智能交通设备实时状态显示系统
WO2011091388A2 (en) * 2010-01-22 2011-07-28 The Regents Of The University Of California Web application development framework
CN102236546B (zh) * 2010-04-30 2014-03-12 英业达股份有限公司 搜寻互动元素以执行对应脚本的系统及其方法
CN102262635A (zh) * 2010-05-25 2011-11-30 北京启明星辰信息技术股份有限公司 一种网页爬虫系统及方法
EP2413265B1 (en) * 2010-07-29 2017-10-18 Tata Consultancy Services Ltd. A system and method for classification of moving object during video surveillance
CN102479231A (zh) * 2010-11-24 2012-05-30 财团法人资讯工业策进会 网页攀爬方法及其装置
CN102073728A (zh) * 2011-01-13 2011-05-25 百度在线网络技术(北京)有限公司 一种用于确定网页访问请求的方法、装置及设备
US8646050B2 (en) * 2011-01-18 2014-02-04 Apple Inc. System and method for supporting JIT in a secure system with randomly allocated memory ranges
US9805135B2 (en) * 2011-03-30 2017-10-31 Cbs Interactive Inc. Systems and methods for updating rich internet applications
US8527862B2 (en) * 2011-06-24 2013-09-03 Usablenet Inc. Methods for making ajax web applications bookmarkable and crawlable and devices thereof
CN102880618A (zh) 2011-07-15 2013-01-16 国际商业机器公司 用于网页文档搜索的方法及系统
CN102902581B (zh) 2011-07-29 2016-05-11 国际商业机器公司 硬件加速器及方法、中央处理单元、计算设备
CN103020087A (zh) * 2011-09-26 2013-04-03 百度在线网络技术(北京)有限公司 点击日志的生成方法及装置,搜索结果调整方法及装置
CN102609481A (zh) * 2012-01-20 2012-07-25 苏州简拔林网络科技有限公司 一种评论信息的实时更新汇总方法
CN102609518B (zh) * 2012-02-09 2015-02-18 清华大学 多状态ajax网页内容获取方法及系统
CN102662737B (zh) * 2012-03-14 2014-06-11 优视科技有限公司 扩展程序的调用方法及装置
CN103365919B (zh) * 2012-04-09 2018-07-31 北京京东尚科信息技术有限公司 网页解析容器及方法
CN103577427A (zh) * 2012-07-25 2014-02-12 中国移动通信集团公司 基于浏览器内核的网页爬取方法、装置及包含该装置的浏览器
CN107609135B (zh) * 2012-09-03 2020-08-21 阿里巴巴集团控股有限公司 页面元素确定方法及设备、用户行为路径确定方法及装置
CN102929599B (zh) * 2012-09-26 2015-12-02 广州市动景计算机科技有限公司 移动终端浏览器界面的修改方法及装置、移动终端
CN103853717B (zh) * 2012-11-28 2018-10-12 北京京东尚科信息技术有限公司 网络爬虫系统
WO2014120128A1 (en) * 2013-01-29 2014-08-07 Hewlett-Packard Development Company, L.P. Analyzing structure of web application
CN103268361B (zh) * 2013-06-07 2019-05-31 百度在线网络技术(北京)有限公司 网页中隐藏url的提取方法、装置和系统
CN104111836A (zh) * 2014-07-14 2014-10-22 浪潮软件集团有限公司 一种网络采集处理异步加载数据的方法
US9772829B2 (en) * 2014-09-09 2017-09-26 Liveperson, Inc. Dynamic code management
US11120461B1 (en) 2014-11-06 2021-09-14 Capital One Services, Llc Passive user-generated coupon submission
US11068921B1 (en) 2014-11-06 2021-07-20 Capital One Services, Llc Automated testing of multiple on-line coupons
US10649740B2 (en) * 2015-01-15 2020-05-12 International Business Machines Corporation Predicting and using utility of script execution in functional web crawling and other crawling
AU2016217427A1 (en) * 2015-02-13 2017-08-17 Panasonic Intellectual Property Management Co., Ltd. Content reproduction system, video recording apparatus, terminal apparatus, and content reproduction method
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
CN106294397B (zh) * 2015-05-20 2019-10-25 无锡天脉聚源传媒科技有限公司 一种获取任务的方法及装置
CN104965901A (zh) * 2015-06-30 2015-10-07 北京奇虎科技有限公司 一种目标页面内容抓取方法和装置
CN105183453B (zh) * 2015-08-07 2019-04-02 安一恒通(北京)科技有限公司 基于网页的信息获取方法及装置
CN105243088B (zh) * 2015-09-09 2019-10-01 深圳Tcl数字技术有限公司 Android系统中获取网页内容的方法及装置
US10082937B2 (en) 2015-09-11 2018-09-25 International Business Machines Corporation Intelligent rendering of webpages
CN105183886A (zh) * 2015-09-25 2015-12-23 中国民生银行股份有限公司 网页内容提取方法及装置
WO2017062678A1 (en) * 2015-10-07 2017-04-13 Impossible Ventures, LLC Automated extraction of data from web pages
CN105740419A (zh) * 2016-01-29 2016-07-06 广州酷狗计算机科技有限公司 获取网页中动态加载内容的方法及装置
US10223353B1 (en) * 2016-09-20 2019-03-05 Amazon Technologies Dynamic semantic analysis on free-text reviews to identify safety concerns
CN106959995A (zh) * 2016-12-21 2017-07-18 四川长虹电器股份有限公司 兼容双向自动化网页内容采集方法
CN108306918B (zh) * 2017-01-13 2021-08-31 南京邮电大学盐城大数据研究院有限公司 一种基于程序动态分析的网站访问信息自动获取方法
CN106991188A (zh) * 2017-04-11 2017-07-28 焦点科技股份有限公司 一种高效的互联网动态数据自动筛选与抓取方法及系统
US11205188B1 (en) 2017-06-07 2021-12-21 Capital One Services, Llc Automatically presenting e-commerce offers based on browse history
CN109150984B (zh) * 2018-07-27 2021-11-02 平安科技(深圳)有限公司 获取数据资源的方法和装置
CN108984801A (zh) * 2018-08-22 2018-12-11 百卓网络科技有限公司 一种基于html标签识别异步加载内容的搜索引擎优化方法
JP7018202B2 (ja) * 2018-11-27 2022-02-10 株式会社クリエイト 掲載情報検索システム
US11483371B2 (en) 2020-11-23 2022-10-25 International Business Machines Corporation User-derived webpage activity control
CN113076460B (zh) * 2021-05-07 2024-06-14 北京华云安信息技术有限公司 页面数据爬取方法、装置、设备和计算机可读存储介质

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7178106B2 (en) * 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
US7346920B2 (en) * 2000-07-07 2008-03-18 Sonic Solutions, A California Corporation System, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content
AU2002258769A1 (en) 2001-04-09 2002-10-21 America Online Incorporated Server-based browser system
US7149754B2 (en) * 2001-07-19 2006-12-12 William H. Carpenter, Jr. Method for transmitting a transferable information packet
US7752326B2 (en) * 2001-08-20 2010-07-06 Masterobjects, Inc. System and method for utilizing asynchronous client server communication objects
US20060190561A1 (en) * 2002-06-19 2006-08-24 Watchfire Corporation Method and system for obtaining script related information for website crawling
US8032860B2 (en) * 2003-02-26 2011-10-04 Oracle International Corporation Methods for type-independent source code editing
US7454410B2 (en) 2003-05-09 2008-11-18 International Business Machines Corporation Method and apparatus for web crawler data collection
US7685296B2 (en) 2003-09-25 2010-03-23 Microsoft Corporation Systems and methods for client-based web crawling
CN101443751A (zh) 2004-11-22 2009-05-27 特鲁维奥公司 用于应用爬取器的方法和装置
US7584194B2 (en) * 2004-11-22 2009-09-01 Truveo, Inc. Method and apparatus for an application crawler
EP1662405A1 (en) * 2004-11-30 2006-05-31 Alcatel Method of displaying data on a client computer
US7536389B1 (en) 2005-02-22 2009-05-19 Yahoo ! Inc. Techniques for crawling dynamic web content
US7636883B2 (en) * 2005-05-18 2009-12-22 International Business Machines Corporation User form based automated and guided data collection
US7506248B2 (en) 2005-10-14 2009-03-17 Ebay Inc. Asynchronously loading dynamically generated content across multiple internet domains
US7725574B2 (en) * 2006-01-23 2010-05-25 International Business Machines Corporation Web browser-based programming language error determination and reporting
US20080040653A1 (en) 2006-08-14 2008-02-14 Christopher Levine System and methods for managing presentation and behavioral use of web display content
JP2008071048A (ja) * 2006-09-13 2008-03-27 Nippon Telegr & Teleph Corp <Ntt> 動的コンテンツ提示システム及びそのプログラム
JP2008107987A (ja) * 2006-10-24 2008-05-08 Logly Kk 情報提供装置及び情報提供方法
JP2008186160A (ja) 2007-01-29 2008-08-14 Fuji Xerox Co Ltd 文書表示装置およびプログラム
US7774788B2 (en) 2007-03-07 2010-08-10 Ianywhere Solutions, Inc. Selectively updating web pages on a mobile client
US8065667B2 (en) * 2007-03-20 2011-11-22 Yahoo! Inc. Injecting content into third party documents for document processing
US9563718B2 (en) 2007-06-29 2017-02-07 Intuit Inc. Using interactive scripts to facilitate web-based aggregation
US9594731B2 (en) * 2007-06-29 2017-03-14 Microsoft Technology Licensing, Llc WYSIWYG, browser-based XML editor
US8131591B2 (en) 2007-09-12 2012-03-06 Microsoft Corporation Updating contents of asynchronously refreshable webpages
US7672938B2 (en) 2007-10-05 2010-03-02 Microsoft Corporation Creating search enabled web pages
US8250585B2 (en) * 2007-11-05 2012-08-21 International Business Machines Corporation Extensible framework for managing UI state in a composite AJAX application
US8572065B2 (en) * 2007-11-09 2013-10-29 Microsoft Corporation Link discovery from web scripts
US8527860B1 (en) * 2007-12-04 2013-09-03 Appcelerator, Inc. System and method for exposing the dynamic web server-side
US7958232B1 (en) * 2007-12-05 2011-06-07 Appcelerator, Inc. Dashboard for on-the-fly AJAX monitoring
US8347405B2 (en) * 2007-12-27 2013-01-01 International Business Machines Corporation Asynchronous java script and XML (AJAX) form-based authentication using java 2 platform enterprise edition (J2EE)
WO2009089626A1 (en) * 2008-01-16 2009-07-23 Bayalink Solutions Corp. Secured presentation layer virtualization for wireless handheld communication device
CN101546309B (zh) * 2008-03-26 2012-07-04 国际商业机器公司 对计算机网络中的资源内容构建索引的方法和设备
KR101642449B1 (ko) * 2009-03-18 2016-07-25 구글 인코포레이티드 디스플레이 대체물에 의한 웹 번역
CN101515300B (zh) 2009-04-02 2011-07-20 阿里巴巴集团控股有限公司 一种Ajax网页内容的抓取方法及系统

Also Published As

Publication number Publication date
WO2010114913A1 (en) 2010-10-07
JP2012523047A (ja) 2012-09-27
US9767082B2 (en) 2017-09-19
US8413044B2 (en) 2013-04-02
EP2414929A4 (en) 2012-11-28
JP2015135680A (ja) 2015-07-27
EP2414929A1 (en) 2012-02-08
US20130145253A1 (en) 2013-06-06
HK1136053A1 (en) 2010-06-18
CN101515300B (zh) 2011-07-20
JP5990605B2 (ja) 2016-09-14
US20120011431A1 (en) 2012-01-12
CN101515300A (zh) 2009-08-26

Similar Documents

Publication Publication Date Title
JP5990605B2 (ja) Ajaxウェブページコンテンツを取得する方法およびシステム
JP5636521B2 (ja) ウェブページ情報を抽出するためのウェブクローラの構成
US7672938B2 (en) Creating search enabled web pages
KR101623223B1 (ko) 하나의 인터넷 호스팅 시스템 집합에 의해 제공되는 다수의 병렬 사용자 경험
US20090070413A1 (en) Displaying Content on a Mobile Device
US20100281357A1 (en) System and method for processing a widget at a web browser
CN109033195A (zh) 网页信息的获取方法、获取设备及计算机可读介质
CN107766344B (zh) 一种模板渲染的方法、装置及浏览器
US20080082965A1 (en) Providing globalization functionalities for javascript applications
CN104063401B (zh) 一种网页样式地址合并的方法和装置
US9715557B2 (en) System, device and method for providing context sensitive content on a computing device
CA2742059A1 (en) Method and system for automated analysis and transformation of web pages
IL228896A (en) A system that supports direct links and search engines to create websites that integrate third-party applications and components
CN105528369B (zh) 网页转码方法、装置以及服务器
US9122484B2 (en) Method and apparatus for mashing up web applications
Vogel et al. An in-depth analysis of web page structure and efficiency with focus on optimization potential for initial page load
KR20120122959A (ko) 웹 컨텐츠 수집방법 및 수집장치, 그 기록매체
CN114003835A (zh) 页面渲染方法、装置、设备及存储介质
CN110719344B (zh) 域名获取方法、装置、电子设备及存储介质
CN103678341A (zh) 数据库交互系统及方法
US20240104106A1 (en) Data extraction cycles with multiple parsing frames
TW201044197A (en) A method and system for capturing contents of Ajax web pages
KR20020028963A (ko) 웹 서버간의 데이터를 송/수신하기 위한클라이언트컴퓨터의 에이드 데이터셋 컴포넌트
Abhari et al. Improving the performance of Apache Web server

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150205

R150 Certificate of patent or registration of utility model

Ref document number: 5695027

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250