【问题标题】:Selenium WebDriver - How to get a web page contents without opening it in browserSelenium WebDriver - 如何获取网页内容而不在浏览器中打开它
【发布时间】:2015-03-19 03:38:52
【问题描述】:

我需要保存网页的内容,但不想在任何浏览器中打开它。 Selenium WebDriver 中有什么方法可以让我通过网络链接获取内容。

【问题讨论】:

  • 如果您只想获取网页的内容,也许wgetcurl 会比Selenium 更合适?
  • 你想要的似乎只是一个无头浏览器。或者你也可以使用任何 httpclient 并解析从它们生成的内容的响应,但它们可能在 html / xml / json 中。
  • 我们在 selenium web 驱动程序中是否有一些解决方案,因为这是我需要使用的唯一工具。
  • 按照@Saifur 的建议使用无头浏览器 ...

标签: selenium selenium-webdriver


【解决方案1】:

是的,您可以使用 headless 来做到这一点。 PhantomJS 是最好的选择之一。取自here的示例示例

var page = require('webpage').create(),
url = 'http://lite.yelp.com/search?find_desc=pizza&find_loc=94040&find_submit=Search';
page.open(url, function (status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
    var results = page.evaluate(function() {
    var list = document.querySelectorAll('address'), pizza = [], i;
    for (i = 0; i < list.length; i++) {
    pizza.push(list[i].innerText);
}
    return pizza;
});
    console.log(results.join('\n'));
}
    phantom.exit();
});

【讨论】:

    【解决方案2】:

    不要为此使用 Selenium。

    使用Jsoup

    100% 无头,并且不需要任何第三方程序(与 selenium 不同)来获取页面内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-09
      • 2017-01-13
      • 2013-11-27
      • 2011-11-12
      • 2012-04-08
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多