basketball-reference-player-scraper
Version:
A simple web scraper for NBA player data via Basketball-Reference
58 lines • 2.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPlayerPageURL = exports.nameCheck = exports.trimWhitespace = exports.rowsToArray = exports.cellToKeyValPair = exports.getFile = void 0;
var fs_1 = require("fs");
var getFile = function (filename) { return "" + (0, fs_1.readFileSync)(filename); };
exports.getFile = getFile;
var cellToKeyValPair = function (output, cell) {
var statHeader = cell.getAttribute('data-stat');
var hasStatHeader = statHeader !== null;
if (!hasStatHeader) {
throw new Error('The "data-stat" attribute does not exist in this table');
}
var statText = cell.textContent;
var statValue = Number(statText);
var statTextIsANumber = !isNaN(statValue);
if (!statTextIsANumber) {
output[statHeader] = statText;
}
if (statTextIsANumber) {
output[statHeader] = statValue;
}
return output;
};
exports.cellToKeyValPair = cellToKeyValPair;
var rowsToArray = function (row) {
var cells = Array.from(row.children);
var seasonStats = cells.reduce(exports.cellToKeyValPair, {});
return seasonStats;
};
exports.rowsToArray = rowsToArray;
var trimWhitespace = function (str) {
var wsRemovalRegExp = /\s{2,}/g;
var trimmedStr = str.replace(wsRemovalRegExp, ' ');
return trimmedStr;
};
exports.trimWhitespace = trimWhitespace;
function nameCheck(normalizedQuery) {
function callback(playerItem) {
var _a;
var playerName = playerItem.textContent;
var normalizedPlayerName = (_a = playerName === null || playerName === void 0 ? void 0 : playerName.toLowerCase()) !== null && _a !== void 0 ? _a : '';
var isMatch = normalizedPlayerName.includes(normalizedQuery);
if (!isMatch) {
return false;
}
return true;
}
return callback;
}
exports.nameCheck = nameCheck;
var getPlayerPageURL = function (isActive, children) {
if (!isActive) {
return children[0].getAttribute('href');
}
return children[0].children[0].getAttribute('href');
};
exports.getPlayerPageURL = getPlayerPageURL;
//# sourceMappingURL=Utils.js.map