Javaでscholar.google.comをwebscrapeする方法?
-
20-09-2019 - |
質問
私はgrabTopResults(String f)
が私にトップ100「はオートマトン理論」のためにscholar.google.comに関する論文を引用したのリストを返すようなJavaのFUNC grabTopResults("automata theory")
を書きたい。
誰でもライブラリは私の人生は簡単になります何のための提案を持っていますか?
ありがとうございます。
解決
、私はこれは、GoogleのT&C
で禁止/不法/不道徳であるかどうかの質問を無視しますあなたがする必要がある最初の事はあなたが必要なデータを使用してページを取得するために発行する必要がどのようなHTTPリクエスト(または要求)を把握しています。あなたはこれを考え出したら、同じを発行するのHttpClient に使用Javaコードからのリクエスト。以前のリンクは、これを行う方法について説明しますサンプルコードを示します。
あなたは、関連するページのコンテンツをダウンロードしたら、、あなたが興味を持っているデータを抽出するために、HTMLパーサを使用する必要があります。<のhref = "http://jericho.htmlparser.net/ドキュメント/ index.htmlを」REL = "nofollowをnoreferrer"> pepergによって提案のジェリコパーサは良い選択です。
Googleの警察がノックしてきた場合は、、あなたはOK、私の聞いたことがない?
他のヒント
私が使用して http://jericho.htmlparser.net/docs/index.html。 //:Googleニュースは、API( HTTPを持っていませんcode.google.com/p/google-ajax-apis/issues/detail?id=109する)。もちろん、それは(利用規約をお読みください。自動requestrを禁止されています)、Googleが許可されていません。
以下は、オープンソース製品を使用して最初のページにタイトルを取得するサンプルコードのビット試験プラン。 (これはJava自体で書かれている)これは、スタンドアロン製品ですが、あなたが本当にそれを必要とする場合、私はあなたのJavaコードにそれを統合助けることができます。
GotoURL http://scholar.google.com/
SubmitForm with
%Params:q% automate theory
end
set %Items% as response //div[@class='gs_r']
foreach %Item% in %Items%
set %Title% as selectIn %Item% h3
Notice %Title%
end
これは、以下のような出力を生成します(私のIPは、ドイツ、ドイツのように応答があります)。もちろん、あなたが好きしかし、それをフォーマット、またはファイルにそれを書くことができます。これはただの荒いテストです。
00000000-00 GOTOURL http://scholar.google.com/
00000001-00 SUBMITFORM default
00000002-00 NOTICE [ZITATION] Stochastic complexity in statistical inquiry theory
00000003-00 NOTICE AUTOMATED THEORY FORMATION IN MATHEMATICS1
00000004-00 NOTICE Constraint generation via automated theory formation
00000005-00 NOTICE [BUCH] Automated theorem proving: after 25 years
00000006-00 NOTICE [BUCH] Introduction to the Theory of Computation
00000007-00 NOTICE [ZITATION] Computer-controlled systems: theory and design
00000008-00 NOTICE [BUCH] … , randomness & incompleteness: papers on algorithmic information theory
00000009-00 NOTICE [BUCH] Automatic control systems
00000010-00 NOTICE [BUCH] VLSI physical design automation: theory and practice
00000011-00 NOTICE Singular Control Systems.