ruby - 尝试在 ruby 中使用 open-uri,一些 HTML 内容以“正在加载...”的形式出现
问题描述
我正在尝试创建一个程序来比较网页上的特定事物,然后再进行比较,我目前正在努力获取会改变的信息。但是,如果我检查页面中的元素,会出现会更改的文本,但如果我使用 open-uri 则不会出现,它以“正在加载...”(见图)出现,有没有办法获取所有 HTML 文本?
这是我当前的代码
contents = open('https://www.cargurus.com/Cars/l-Used-Mazda-MAZDASPEED6-d841', &:read)
File.open("testing.txt", "w") do |line|
line.puts "\r" + "#{contents}"
end
任何帮助将 Loading... 更改为实际的 HTML 代码都会很棒。
谢谢
解决方案
您的网页包含ajax request
且open-uri
仅返回服务器端页面,它不等待 ajax 请求
您可以使用下面的代码等待页面加载
#load the libraries
require 'watir'
browser = Watir::Browser.new
browser.goto "https://www.cargurus.com/Cars/l-Used-Mazda-MAZDASPEED6-d841"
# giving some time for website to load
sleep 2
puts browser.html
注意:
如果您不想在浏览器中打开 url,则需要chromedriver
使用脚本http://chromedriver.chromium.org/downloads然后您可以使用 headless-WebKit
推荐阅读
- android - 服务器端收据验证 - Google Play 商店的设置问题
- php - Docker Compose 文件无效
- r - 将父向量拆分为具有相等 seb 向量长度的重叠子向量,R 中的最后一个子向量除外
- python - 为什么我的代码因“直接添加到地图时必须分配标记位置”而失败?
- javascript - 找出为什么 Img 无法在动态创建的图像上加载 HTML
- angular - Angular + ChartJS 添加resetZoom 按钮
- c++ - 如何在生成文件中使用 g++ -MM
- selenium - Selenium web element - 获取元素id并在循环中迭代
- python - 一维卷积神经网络输入形状问题
- python - 如何更快地使用 FuncAnimation 保存动画?