Java を使用して Google 検索クエリ結果の html を取得しようとしています。つまり、Google.com で特定のフレーズを検索すると、結果の Web ページ (一致する可能性のあるリンクとその説明、URL などを含むページ) の html を取得したいと考えています。
関連する投稿で見つけた次のコードを使用して、これを実行してみました。
import java.io.*;
import java.net.*;
import java.util.*;
public class Main {
public static void main (String args[]) {
URL url;
InputStream is = null;
DataInputStream dis;
String line;
try {
url = new URL("https://www.google.com/#hl=en&output=search&sclient=psy-ab&q=UCF&oq=UCF&aq=f&aqi=g4&aql=&gs_l=hp.3..0l4.1066.1471.0.1862.3.3.0.0.0.0.382.1028.2-1j2.3.0...0.0.OxbV2LOXcaY&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&fp=579625c09319dd01&biw=944&bih=951");
is = url.openStream(); // throws an IOException
dis = new DataInputStream(new BufferedInputStream(is));
while ((line = dis.readLine()) != null) {
System.out.println(line);
}
} catch (MalformedURLException mue) {
mue.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
is.close();
} catch (IOException ioe ) {
// nothing to see here
}
}
}
}
From: Java で Web ページをプログラムでダウンロードする方法
このコードで使用されている URL は、Google ホームページから Google 検索クエリを実行して取得したものです。どういうわけか、Web ブラウザーの URL バーに検索したいフレーズを記述し、結果の検索結果ページの URL をコードで使用すると、403 エラーが発生します。
ただし、このコードは検索クエリ結果ページの html を返しませんでした。代わりに、Google ホームページのソース コードが返されました。
さらに調査した結果、Google 検索クエリ結果のソース コードを表示し (検索結果ページの背景を右クリックして [ページのソースを表示] を選択)、Google ホームページのソース コードと比較することに気付きました。 、どちらも同一です。
検索結果ページのソース コードを表示する代わりに、(ctrl+s を押して) 検索結果ページの html を保存すると、探している html を取得できます。
Javaを使用して検索結果ページのhtmlを取得する方法はありますか?
ありがとうございました!