2016-07-12 9 views
0

私たちのラボはウェブ会社と協力しており、ウェブクローラによってウェブページがクロールされるのを防ぐ技術を開発しました。テストウェブサイトはhttp://119.254.209.77/です。左側のページに "Checking " Python + Selenium + Firefox、私はクリック操作をシミュレートしましたが、には実際のデータではなく空白のページがあります。リンクをクリックするだけで、実際のデータを返します。私は、firefoxでselenium webdriverを使用すると、サーバーがどのようにWebクローラーであるかを知ることができますか?また、私はを知りたいと思うaviodはウェブクローラーとして扱われるそれはウェブサイトによってそれである。ここselenium webdriverを使用してWebページをクロールする際に、サーバがロボットか人かを区別する方法はありますか?

は私のコードです:

 

    driver = webdriver.Firefox() 
    driver.get('http://119.254.209.77/') 
    time.sleep(5) 
    pageSource = driver.page_source 
    print(driver.page_source) 

    # the target url 

    checking = driver.find_element_by_id('_ctl0__ctl0_Content_MenuHyperLink2') 

    # it seems to has no effects 
    checking.click() 
    time.sleep(2) 
    print(driver.page_source) 
+1

**モデレーター注:**あなたの投稿を破壊しないでください。質問を投稿したら、(CC-by-SAライセンスのもとで)大規模なスタックオーバーフローコミュニティにコンテンツのライセンスを取得しました。この投稿とアカウントとの関連付けを解除する場合は、[disassociation requestの正しいルートは何ですか?](http://meta.stackoverflow.com/questions/323395/what-is-the-proper-rout)を参照してください。解体依頼の電子メール) –

+0

返信いただきありがとうございます。何らかの理由で、投稿を削除することはできませんでした。どうすればいいですか? – resolvewang

答えて

1

サイトは、あなたがマウスが次のページにあなたを渡す前にあるなら場所を確認するためにチェックされるように思えます。クリックする前に要素に移動すると、私の作品:

driver = webdriver.Chrome() 
driver.get('http://119.254.209.77/') 
time.sleep(5) 
pageSource = driver.page_source 
print(driver.page_source) 
# the target url 
checking = driver.find_element_by_id('_ctl0__ctl0_Content_MenuHyperLink2') 

action_chain = webdriver.ActionChains(driver) 
action_chain.move_to_element(checking) 
action_chain.click(checking) 
action_chain.perform() 
time.sleep(2) 
print(driver.page_source) 
+0

@resolvewang申し訳ありませんが、私はこれをChromeでテストしました。 –

+0

Firefoxで、時折、自分でクリックしても機能しません。それはFirefox上で動作しないかもしれません。 –

関連する問題