2012-02-12 12 views
0

特に、java(preferred)またはperlでurlを入力してそのページのテキストをコピーできるかどうか疑問に思っていますか?具体的には、私はgoogle上で何かを検索し、出てくる最初の5つのリンクをコピーするだけでコピーできるようにしたい。 SEOや何かをやっているのは、そのプログラムだけです。WebプログラムからテキストをコピーするJavaプログラムまたはPerlスクリプト

+1

スクレイピングのこの種は、使用のGoogleの利用規約で禁止されています。代わりに[API](http://code.google.com/more/#google-search)を使用してください。 – daxim

答えて

1

これはどちらの言語でも間違いなく可能です。 Java用の次を見てみましょう:

http://docs.oracle.com/javase/tutorial/networking/urls/readingURL.html

ドキュメントから:

URL oracle = new URL("http://www.oracle.com/"); 
BufferedReader in = new BufferedReader(
    new InputStreamReader(
    oracle.openStream())); 

String inputLine; 

while ((inputLine = in.readLine()) != null) 
    System.out.println(inputLine); 

in.close(); 

これはあなたのページのHTMLを与えるだろう。

+0

うわーなので、これはHTML全体を1つの動きにするだけでしょうか?驚くべきことに、それは空白を削除するでしょうか? – CMOS

+1

このコード例はHTMLを出力しますが、htmlを文字列に連結するために簡単に変更できます。空白を取り除くのはやや難解です。 http://stackoverflow.com/questions/1963337/how-to-strip-insignificant-whitespace-out-of-htmlを見てください – nolt2232

+0

これはGoogle検索ではうまくいくと思いますか?私はちょうどGoogle検索のソースコードを表示しようとしました。すべての緑色のリンクを調べてtext = /に変換するために、ある種のイメージスキャナを使用する必要があります。助けてくれてありがとう。 – CMOS

5

Javaではわかりませんが(確かに可能です)、PerlではCPANモジュールを試すことができます。LWP/UserAgentはページを取得できます。簡単

上記のあなたのコメントを見
require LWP::UserAgent; 

my $ua = LWP::UserAgent->new; 
$ua->timeout(10); 
$ua->env_proxy; 

my $response = $ua->get('http://search.cpan.org/'); 

if ($response->is_success) { 
print $response->decoded_content; # or whatever 
} 

http://search.cpan.org/~gaas/libwww-perl-6.03/lib/LWP/UserAgent.pm

、私は追加しようと思いました。 Perlで空白をストリッピングするのは簡単です:

$string =~ s/\s//g; 

または上記のコードに適用される

$response->decoded_content =~ s/\s//g; 
関連する問題