从网站解析数据

时间:2013-11-08 13:29:03

标签: javascript web-scraping

我正在尝试从trustpilot co uk废弃供个人使用的数据。我从这个page解析网站的名称。我得到的结果是:

2. Flashbay ,&,;

我想要的只是网站的名称,例如" Flashbay&#34 ;. 到目前为止,我使用此命令$('.items h3 a')

非常感谢任何有关如何实现目标的建议/帮助。

3 个答案:

答案 0 :(得分:3)

var websites = [];
$.each($('.item h3 a'), function () {
    websites.push($(this).text().trim().replace(/^[^A-Z]+/i, ''));
});
console.log(websites);

这给了我以下内容:

["Mr Memory", "GoGoDigital", "Maxram", "Quiet PC.com", "Sell Your-laptop",
 "Wiziwoo Ltd", "OFFTEK", "Memoryc", "Total Computing", "ZiiP GameStore",
 "Comms Express", "MicroDream Limited", "Xytron", "Kikatek", "Gizzmo Heaven",
 "Arbico Computers", "Network Webcams", "ShopTo.Net", "PC Specialist Ltd", "rpm"]

答案 1 :(得分:0)

你可以在包含“2. Flashbay,&,;”的字符串变量上使用.substring(3,8)

答案 2 :(得分:0)

使用Damien建议的子串可能是最简单的路线。但是,使用这样的静态索引是行不通的,因为您正在查看的字符串具有可变长度,包括要修剪的前导文本。看看这个页面,这对我有用:

var companies = [];
var elements = $('.items h3 a');
for(var i = 0; i < elements.length;i++){
    var text = $.trim($(elements[i]).text());
    text = text.substr(text.indexOf(".") + 2);
    companies.push(text);
}
console.log(companies);

我在您链接的页面上测试了它,它似乎工作正常。我不知道你最后得到的,&,;来自哪里。