我很难开发出足够的“CSS选择器”代码来刮取/解析以下HTML的几率。我对node.js比较新。但我过去成功地删除了类似的网站。不幸的是,这个网站有点棘手(对我来说无论如何!)。我可以告诉问题必须是我使用的CSS选择器代码。你能告诉我如何编写一个允许我从...中获取赔率11/2的代码。
<div class="market"..............>
<header class=..........>
<div class="market-content">
<div class ="selection">
<div class="selection name" data- bind="html:selection.getTitle()"> Aston Villa </div>
<selection-button params="....>
<div>
<div class="odds-button"..........>
<span class="price">
<span class="odds-convert"......> 11/2 </span>
答案 0 :(得分:0)
很难说只是那段HTML,但为此(使用jQuery):
$('.odds-button > . price > .odds-convert').text();
当然,选择器也可能与其他地方匹配,然后您必须通过包含更长的路径来使其更具体。但是,如果HTML的结构发生变化,那么从get get开始过于具体化会使它过于脆弱。
答案 1 :(得分:0)
我不确切地知道你是如何抓取Node.js中的内容,你正在使用哪些库或技术,但这就是我在客户端做的方式:
var oddsElement = document.querySelector([
".market",
".market-content",
".selection",
// obviously, change below to match your data attribute
".selection.name[data-SOME_KEY=\"SOME_VALUE\"]",
".odds-button",
"span.price",
"span.odds-convert"
].join(" "));
if (typeof oddsElement === "object") {
var odds = (oddsElement.textContent || oddsElement.innerText);
// or could use "let" keyword in strict-mode Node.js for block-scope
} else { // no match
console.warn("Odds cannot be found.");
}