Как соскрести с сайта, используя определенный тег, который содержит атрибут? - PullRequest
0 голосов
/ 10 декабря 2018

область моего кода, с которой у меня возникают проблемы, находится в маршруте get ("/").Я пытаюсь соскрести с сайта NYT.Я пытаюсь войти в заголовок и ссылку.Когда я делаю это, я получаю записи в журнале дважды и кучу статей, которые не определены.Я пытаюсь включить и если заявление, которое говорит только очищает теги H2 с атрибутом.

var express = require("express");
var exphbs = require("express-handlebars");
var cheerio = require("cheerio");
var axios = require("axios");
var mongoose = require("mongoose");

var app = express();
var PORT = process.env.PORT || 3000;

var db = require("./models/Article");
//ignore before publishing
mongoose.connect(
"mongodb://localhost/scrapper",
{ useNewUrlParser: true }
);

//works with express for template engine"

app.engine("handlebars", exphbs({ defaultLayout: "main" }));
app.set("view engine", "handlebars");
app.use(express.static("public"));
 app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.set("port", process.env.PORT || 3000);

  app.get("/", function(req, res) {
   axios
  .get("https://www.nytimes.com/section/technology")
  .then(function(response) {
  var $ = cheerio.load(response.data);
  var result = {};
  var title = $(element)
    .find("h2.headline")
    .text()
    .trim();
  var link = $(element)
    .find("a")
    .attr("href");
  if (title && link) {
    result.title = $(element)
      .find("h2.headline")
      .text()
      .trim();
    result.link = $(element)
      .find("a")
      .attr("href");
    console.log(result.title);
    console.log("https://www.nytimes.com/section/technology" + 
    result.link);
    }
   });
   res.render("index");
  });

  app.use(function(req, res) {
 res.type("text/plain");
  res.status(404);
  res.send("404 - not found");
  });

  var MONGODB_URI =
  process.env.MONGODB_URI || "mongodb://localhost/mongoHeadlines";
  mongoose.connect(MONGODB_URI);

 app.listen(PORT, function() {
 console.log("Express Server Started on http://localhost:3000");
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...