2013-10-17 98 views
1

我有下面的代碼。我想要做的是將我指定的每個搜索查詢都發布到瀏覽器窗口中,而不是列出當前編寫的搜索結果。但我是一名初學者,在這方面很難找到相關文檔。可能嗎?從Ruby命令提示符啓動瀏覽器窗口

問題是我將使用的search_criteria的實際列表實際上是40個條款,我需要爲幾十個和幾十個城市完成 - 這就是爲什麼我希望自動化搜索過程。

如果無法將每個查詢作爲瀏覽器窗口(或瀏覽器窗口中更好的選項卡)啓動,有沒有辦法指定每個導致系統化方式的URL,以便由命令提示符作爲瀏覽器窗口啓動?

require "google-search" 

search_criteria = ["makers", "makerspaces", "fablabs", "smartlabs"] 

#City name 
search_1 = search_criteria.map do |noun| 
    "#{noun} new york city" 
end 

#City acronym 1 
search_2 = search_criteria.map do |noun| 
    "#{noun} new york" 
end 

#City acronym 2 
search_3 = search_criteria.map do |noun| 
    "#{noun} nyc" 
end 


#Replace "search_1" for other acronyms 
search_1.each do |query| 
    puts "Just one moment please! I am searching for #{query}" 
    Google::Search::Web.new do |search| 
     search.query = query 
     search.size = :large 
    end.each { |item| puts item.title } 
end 
+0

使用selenium-webdriver,創建驅動程序並將其自定義想。 – uday

回答

0
search_criteria = ["makers", "makerspaces", "fablabs", "smartlabs"] 
names = ["new+york+city", "new+york", "nyc"] 

query_strings = names.map do |name| 
    "#{name}+#{search_criteria.join('+')}" 
end 

urls = query_strings.map do |q| 
    "google.com/search?q=" + q 
end 

cmd_line = urls.join(' ') 

然後,你將cmd_line經由system()調用谷歌CHROM可執行文件。在Mac OS X將是這樣的:那麼

system("/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --url #{cmd_line}") 

Chrome將傳遞給它在它自己的標籤在新窗口中的字符串中打開每個URL。 如果你使用的是Windows,你必須找到chrome.exe可執行文件的位置,而在Linux中,你只需找到chrome二進制文件即可。在最後一部分之前的所有內容...... Chrome --url #{cmd_line}")只是可執行文件的路徑,它被隱藏在OS X上的「Google Chrome.app」容器中。

相關問題