2015-04-06 93 views
0

我用'watir','路邊','nokogiri','esay_captcha_solver',我試圖刮頁,所以我會知道驗證碼是否已經出現,然後通過獲取圖像網址來解決問題。然而,我不知道該如何陳述以及如何刮掉我所需要的東西。你如何刮網頁,以檢查是否需要解決captcha

#=> SIGN IN 
    browser = Watir::Browser.new :ff 
    browser.goto "https://soundcloud.com/login" 
    browser.text_field(:id => "site-username").set "#{name}" 
    browser.text_field(:id => "site-password").set "#{pass}" 
    browser.button(:id => "log-in-submit-button").click 
    if browser.body(:url => "https://soundcloud.com/login?captcha=true").text.include? (:id => "recaptcha_table") 
     http = Curl.get("https://soundcloud.com/login?captcha=true") do |http| 
     http.headers['User-Agent'] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0" 

這個if語句不起作用,因爲它似乎不能夠讀取文本......在時,有一個驗證碼,它只是停止了瀏覽器。

 end 
     puts http.form_str 
     easy_c = EasyCaptchaSolver.new(image_url: "...") 
     easy_c.captcha 

我希望能夠刮掉圖像的URL,我不知道怎麼去nogokiri承認HTML代碼刮掉,然後輸入圖片URL ..

else 
     browser.goto "http://soundcloud.com/you/sets" 
    end 

的驗證碼HTML的樣子:

captch code

+0

您可以添加要刮的網站的HTML嗎? – 2015-04-06 12:55:36

+0

你想整頁的HTML? @AlexGolubenko – marriedjane875 2015-04-06 13:23:43

+0

僅用於驗證碼 – 2015-04-06 13:26:57

回答

0

一號線 - 檢查驗證碼存在或不

2nd - 獲取驗證碼的網址

if browser.element(:id => 'recaptcha_image').exists? 
    img_url = browser.image(:id => 'recaptcha_challenge_image').src 
    easy_c = EasyCaptchaSolver.new(image_url: "#{img_url}") 
    easy_c.captcha 
end 
+0

嘿,謝謝,它讀取它,太糟糕了easy_captcha_solver無法讀取captchas:\ – marriedjane875 2015-04-06 15:34:01

相關問題