Google根据代理字符串为不同的客户端呈现不同的页面,而代理字符串是服务器关于哪种客户端访问该页面的唯一线索.open-uri
默认情况下声明自己为"Ruby".如果您使用明确自动化的脚本进行访问,则无法获得与使用浏览器访问时相同的页面.
试试这个:
url = open('https://google.com', "User-Agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36")