【问题标题】:How to scrape .aspx site如何抓取 .aspx 网站
【发布时间】:2014-05-05 06:31:35
【问题描述】:

我正在尝试抓取:http://search.bgc-group.com/Default.aspx

当我运行我的代码时,我总是得到第一页。

我的代码:

var casper = require('casper').create({
        verbose: true,
        logLevel: "debug",
        type: 'xpath',
    });
casper.start('http://search.bgc-group.com/Default.aspx');

casper.thenOpen('http://search.bgc-group.com/Default.aspx', {
    method: 'post',
    data:   {
        '__EVENTARGUMENT': 'Page$4',
        '__EVENTTARGET':  'ctl00$body$ctlJobListing1$gvJobListing',
        '__EVENTVALIDATION':  '',
        '__PREVIOUSPAGE':  '',
        '__VIEWSTATE':  ''
    }
});

casper.then(function() {
    this.echo('POSTED it.');
    this.capture("test.png")
});

casper.run();

我没有在实际代码中将__EVENTVALIDATION__PREVIOUSPAGE__VIEWSTATE 字段留空。因为它们是很长的字符串,所以跳过这里。

【问题讨论】:

  • post 数据从何而来?为什么不通过填写表格并提交它来使用 CasperJS 呢?

标签: web-scraping casperjs


【解决方案1】:

您可以执行以下操作,而不是 casper.thenOpen 块:

var x = require('casper').selectXPath;
casper.thenClick("a[href*='Page$4']");
casper.waitForSelector(x("//td/span[text()='4']")); // might be unnecessary

【讨论】:

  • 那么你需要在你的问题中指定它,但它已经详细讨论过,请参阅herehere
猜你喜欢
  • 2019-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-08
相关资源
最近更新 更多