2016-07-17 6 views
0

これは私の掻き取りの最初の試みです。私が使用したい検索機能を備えたウェブサイトがあります。ウェブスクレイピングのアドバイス/提案

検索を行うと、検索の詳細はWebサイトのURLに表示されません。私は要素を検査し、ネットワーク]タブを見ると、リクエストURLは同じ(method:post)のままですが、私はForm Dataセクションで、下を見たとき、私は、ビューのソースをクリックして、私の検索がありましたURL形式の詳細。

私の質問は:= startDate=09.07.2016&endDate=10.07.2016

は、どのように私はこするためのデータをプルするために2つを接続することができ

要求URL = http://somewebsite.com/searchフォームのデータソースか?私は掻きすることに新しいので、もし私がこの間違ったことをしているなら、教えてください。

ありがとうございます!

+0

を使用することができます。ただし、検索を可能にするAPIを提供しています。これらは通常、APIへのある程度のアクセス権を購読し、支払うことを要求します。あなたが掻き取ろうとしたままにすることを選択した場合、CAPTCHAsによって非常に迅速に挑戦する準備をしてください。 –

答えて

1

スクレイピングは悪い習慣ですが、場合によってはそれを取得する唯一の方法です。
ウェブサイトを掻き集める場合は、穏やかに考えて1日以内に1mのリクエストをしないでください。

基本的にあなたは、あなたがしているサイトに有益なことができますPHPのカールfucntionを使用して、サイトの内容で取得するためにボットを使用した後のフィールドに

<?php 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL,"http://example.com/search"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('postvar1'=>'value1'))); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$html = curl_exec ($ch); 

curl_close ($ch); 
+0

ありがとうAucT。私はまた、Pythonでそれをやろうと考えていました。 cURLの方が良いオプションです。どう思いますか?そして、いいえ、私は1日に膨大なリクエストをする予定はありません。ほんの一握りです。 :) – MangoPie

+1

あなたはカールをサポートするどの言語でもそれを行うことができます。ちょうどGoogleカール投稿%言語%。 – AucT

1

倫理

を渡す必要があります掻き集める検索エンジンのように、サイトのコンテンツを参照するためにデータを使用することができます。元のウェブサイトが提供していないサービスをユーザーに提供したい場合もあります。

ただし、スクラップは悪意のある目的で使用されることがあります。コンテンツを盗み、他人のコンピュータリソースを使用するか、悪化させる。

あなたの意図は明確ではありません。あなたを助け、非倫理的かもしれません。私はそれがそうであると言っているわけではないが、それは可能性があります。私は「AucT」を理解していない、それは悪い習慣であり、答えを与えると言っている。それはどういうことですか?

2つのノート:

  1. 検索結果は、ほとんどの他のウェブページより生成する多くのリソースを取ります。彼らは特にDoS攻撃に対して脆弱です。

  2. 私はサーバーサイトを運営していますが、ボットによって大量のトラフィックが発生していることに気付きました。それは文字通り私にお金をかけることです。一部のサイトには、ボットからのトラフィックが多く、ユーザーからのトラフィックが多くあります。それは手を抜いてしまっています。問題を解決するためにかなりの時間を費やさなければなりませんでした。帯域幅制限を守らないボットは私によって永久にブロックされます。私は、もちろん、フレンドリーなボットを許可します。

+0

ちきこちゃん。ご回答有難うございます。いいえ、私は情報を盗むつもりはありません。私は実際にあなたの答えの冒頭に示唆したことをやって "元のウェブサイトが提供していないユーザーにサービスを提供する"ことを意図しています。私は掻き取りを試みる方法に関する質問をしたので、誰も自分の倫理に疑問を持ってほしくない。 – MangoPie

+0

あなたの意図が良好ならば、私はあなたが掻き集めようとしているウェブサイトに連絡し、それが大丈夫だと同意したと思いますか?どんなコンテンツプロバイダーであれ、それは分かります。独自の「ブラウザ文字列」を提供すると、使用状況を監視することもできます。そうすることで、サービスの信頼性を高めることができます。 –

1

あなたは私はあなたが主要な検索エンジンが積極的にあなたはそれが過去数年にあったよりも多くの挑戦を行うことを試みているものを作っていることに気付くでしょうと信じている単純なHTML DOM http://simplehtmldom.sourceforge.net/

<?php 
include_once("simple_html_dom.php"); 
$request = array(
     'http' => array(
       'method' => 'POST', 
       'content' => http_build_query(array(
         'startDate' => '09.07.2016', 
         'endDate' => '10.07.2016' 
       )), 
     ) 
); 
$url = "http://somewebsite.com/search"; 
$context = stream_context_create($request); 
$html = file_get_html($url, false, $context); 
?>