【问题标题】:Web Scraper with nodejs and cheerio?带有nodejs和cheerio的Web Scraper?
【发布时间】:2018-02-07 12:29:27
【问题描述】:

大家好,我真的被困在这里,离解决方案太近了,这很痛苦:/我正在尝试创建一个网络爬虫脚本。

到目前为止我有:

  • digitalOcean 的服务器设置
  • 工作脚本
  • 成功下载html响应文本

但我坚持尝试获取元素。 这是我到目前为止的工作代码:

var http = require('http');
var request = require('request');
var cheerio = require('cheerio');

http.createServer(function (req, res) {
   request('http://www.xscores.com/soccer', function   (error, response, 
html) {
   if (!error && response.statusCode == 200) {
       var $ = cheerio.load(html);
       res.writeHead(200, { 'Content-Type':'text/plain'});
       res.end('html:'+html);

   }
 }); }).listen(8080); console.log('Server is running at 
http://178.62.253.206:8080/');

这仍然是 Wip 进度,我还没有设置任何数据库,所以总体计划是将所有这些信息加载到我的服务器页面上的表或 div 元素中。

我想知道如何在 xscores 中循环遍历主队所在的类“score_home_txt score_cell wrap”的元素并将其显示在我的服务器上?

它是这样构建的:

<div class="score_teams  score_cell">
<div class="score_home score_cell">
<div class="score_home_txt score_cell wrap">
TRACTOR SAZI
</div>

我习惯于使用 excel VBA 执行此过程,而使用 Cheerio 执行此过程是一种全新的体验。

任何帮助都将不胜感激

弗雷德里克

【问题讨论】:

    标签: node.js cheerio


    【解决方案1】:

    这是循环显示名称的方法:

    var http = require('http');
    var request = require('request');
    var cheerio = require('cheerio');
    
    http.createServer(function (req, res) {
        request('http://www.xscores.com/soccer', function (error, response,
            html) {
            if (!error && response.statusCode == 200) {
                var $ = cheerio.load(html);
                var list_items = "";
                $('div.score_home_txt.score_cell.wrap').each(function (i, element) {
                    var a = $(this).text();
                    list_items += "<li>" + a + "</li>";
                    console.log(a);
                });
                var html = "<ul>" + list_items + "</ul>"
                res.writeHead(200, {
                    'Content-Type': 'text/html'
                });
                res.end(html);
            }
        });
    }).listen(8080);
    console.log('Server is running at http://178.62.253.206:8080/');
    

    【讨论】:

    • 谢谢您的回复。,如果我想在我的服务器窗口中插入列表或其他内容,我该怎么做?
    • 也谢谢你,它给了我一个好的开始:) 它工作得很好
    • 更新答案,看看
    • 非常感谢,伙计,感谢您抽出时间来写这篇文章,我会确保当我的代表更高时给您 +1 :;=)
    • 显然我要从这个站点添加更多元素(总共需要 10 个列。我需要仔细研究这个逻辑。如果我想添加第二列“score_away_txt score_cell wrap”和让它显示在我们刚刚添加的第一个旁边,如果你不介意的话,最好的方法是什么?Frederik
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 2020-01-02
    • 1970-01-01
    相关资源
    最近更新 更多