【问题标题】:Scrape links with casperjs/phantomjs使用 casperjs/phantomjs 抓取链接
【发布时间】:2016-04-29 15:33:36
【问题描述】:

我正在尝试抓取http://www.basketball-reference.com/teams/GSW/2016_games.html 上的所有“Box Score”链接。如果有人向我展示了一种逐个单击它们的方法,那将是完美的,但是仅将它们刮掉就已经很棒了。 使用 'a'-selector 我设法从页面中抓取所有链接:

$('tbody tr a').each(function (i) {
            console.log([i + 1, $(this).text(), ' // ' + $(this).attr('href')].join(': '));
        });

但我没有看到如何指定 Box-score 链接的方法

【问题讨论】:

    标签: javascript web-scraping css-selectors phantomjs casperjs


    【解决方案1】:

    这个选择器会做你想做的事:

    #teams_games > tbody > tr > td:nth-child(5) > a
    

    一个有用的提示——如果你在 Chrome 中使用开发者工具,你可以右击一个被检查的元素并选择 Copy >> Copy Selector 来获得一个 CSS 选择器。这通常是为此类情况制作更通用的选择器的良好起点。

    【讨论】:

    • 我做对了的感觉是错觉。我想做一个链接数组。这是我的代码:scrape_links = function() { var array = []; $('#teams_games tbody tr td:nth-child(5) a').each(function () { array.push($(this).attr('href')); });返回数组;我在 page.evaluate-function 中调用这个函数,如下所示: page.evaluate(function() { links = scrape_links(); });我收到一个错误:找不到变量:scrape_links
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多