我正在使用Ruby,Selenium WebDriver和Nokogiri从网页中检索数据。加载正确的HTML后,我会打印某个类的内容。
例如,
require "selenium-webdriver"
require "nokogiri"
browser = Selenium::WebDriver.for :chrome
browser.get "https://jsfiddle.net"
doc = Nokogiri::HTML.parse(browser.page_source)
doc.css('.aiButton').map(&:text).join(',')
到目前为止,我发现最困难的部分是正确加载正确的HTML。例如,我想要的内容可能被某些javascript隐藏,或者可能位于不同的页面上。
是否可以使用Selenium加载页面,然后手动操作页面以显示正确的HTML,然后允许机器人完成并打印它应该的内容?
答案 0 :(得分:2)
您可以使用Selenium与网页进行互动 - 填写表单字段,点击按钮等。您甚至可以执行自己的javascript代码。
编辑:
使用pry停止代码执行,以便您可以手动操作网页。
# Code for starting Selenium session and opening the web page
...
# Use pry to stop the code execution.
# Resume the program using command 'exit' in the pry context
require 'pry'; binding.pry
# Code to get results after you manually manipulate the web page
...
答案 1 :(得分:-1)
你可以很容易地做到这一点。我不熟悉ruby,但我会概述这个过程。
1)启动驱动程序 2)转到您的页面 3)然后询问用户输入(在python 2中例如:continue = raw_input('键入内容并在控制台中按Enter键继续')
4)然后做你想做的所有其他事情。
执行此脚本时,它将停在该问题上。然后你可以手动操作浏览器,当你完成后,你去控制台/ cmd窗口输入" go"并按Enter键。然后它将从您手动离开浏览器的位置继续。