1

我在下面有这个代码。我想要它做的是将我指定的每个搜索查询启动到浏览器窗口中,而不是像当前编写的那样列出搜索结果。但我是一个初学者,很难找到这方面的文档。是否可以?

问题是我将使用的实际 search_criteria 列表实际上是 40 个术语长,我需要为几十个城市做这件事——这就是我寻求自动化搜索过程的原因。

如果无法将每个查询作为浏览器窗口(或更好的浏览器窗口中的选项卡)启动,是否有办法指定每个 URL,从而以某种系统方式生成,以便 Ruby 从命令提示符调用以作为浏览器启动窗户?

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
4

1 回答 1

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给 Google Chrom 可执行文件。system()在 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”容器中。

于 2013-10-18T06:57:06.497 回答