【问题标题】:Parsing img url with casperjs用 casperjs 解析 img url
【发布时间】:2014-07-25 18:02:50
【问题描述】:

我在从我试图抓取的网站获取图片网址时遇到问题。 我可以使用如下代码的 sn-p 来获取所有文本:

var cost = casper.fetchText('span.large');

但是,当我尝试获取图像 URL 时,我在控制台中收到“未定义”回复。

var img = casper.getHTML('.search-product-image').src;

.search-product-image 是图片类,我只是想获取图片的url,谢谢。

【问题讨论】:

    标签: javascript image url casperjs


    【解决方案1】:

    使用这个:

    casper.getElementAttribute('.search-product-image','src');
    

    【讨论】:

    • 这样我们就有了链接......但是,要下载的图像文件怎么样@Fanch?
    【解决方案2】:

    您可以包含 JQuery 并利用下面的语法糖或以普通方式进行。仅供参考,如果您的getLink 有错误,并且您尝试casper.evaluate(getLinks),它将返回null。它不会指示它在哪一行或错误。

    var casper = require('casper').create({
      verbose: true,
      logLevel: 'debug',
      clientScripts: ["vendor/jquery.min.js", "vendor/lodash.js"]
    });
    
    ...
    function getLinks(){
      // Scraping images
      $("img.ExImg.ExResult-img").each(function() {  
         imgSrc = this.src;
         tempImagesArr.push(imgSrc);
      });
    }
    
    casper.run(function() {
      var workouts = this.evaluate(getLinks);
      this.saveJSON(workouts);
      this.exit();
    });
    

    【讨论】:

      【解决方案3】:

      我不知道 casperjs 是如何工作的,但是您必须阅读 casperjs 文档。 http://casperjs.readthedocs.org/en/latest/modules/casper.html#gethtml

      getHTML 函数在容器中返回 html 值。所以你在这个字符串中分割了 src 值。或者你可以只使用 querySelector。

      试试这个代码:

       var img = document.querySelector('.search-product-image').src;
      

      如果您的文档中有很多元素,则必须使用 document.querySelectorAll('.search-product-image')[0]

      【讨论】:

      • 这只能在casper.evaluate(function(){/* here */})内部工作!
      猜你喜欢
      • 2014-08-15
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 2019-03-14
      相关资源
      最近更新 更多