簡體   English   中英

來自許多不同網站的文章抓取選項

[英]Options for article scraping from many different websites

我需要將網頁抓取功能添加到單個頁面應用程序中。

我需要從許多不同的博客和服務中檢索有用的內容。 有用的內容是指文章,文本和視頻鏈接,以便將其嵌入到我的頁面中。

這個工具似乎可以滿足我的需求: http : //www.diffbot.com/

使用它,我只需輸入文章的URL,此服務將從該頁面檢索我需要的所有數據。
但是,我不需要每月處理25萬個請求,而每個月的費用為300美元; 我需要一個解決方案來每月處理大約5000個請求,並可能在以后進行擴展。

我已經通過Google找到了很多抓取解決方案,但是他們大多數提供的解決方案會定期從少量網站抓取定制內容-這不是我所需要的。 另外,我在這方面沒有經驗,所以我想請您就我應該用於此目的的問題向我提供建議。 我主要處理JavaScript。

另外,是否可以通過客戶端的瀏覽器而不是服務器端來抓取頁面?

我使用ReactJS和Flux架構開發SPA。 服務器NodeJS + Express,數據庫-無后端

聽起來像是基於node.js構建的自定義解決方案可能是您最好的選擇(考慮到js要求)。 您可以使用幾個節點模塊來完成此任務。 我建議以下內容:

請求 -用於從目標網頁獲取html

cheerio-用於過濾從請求中收集的html

node-horseman-用於在目標網頁上執行javascript(用於更高級的抓取)

artoo-客戶端抓取庫(我從未使用過,但可能是您正在尋找的東西)

至於SPA開發,我建議使用sailsjs

這是一個使用以上模塊來刮取https://rotogrinders.com/pages/mlb-pitcher-hub-sp-salary-charts-260515的示例節點應用程序

要求&歡樂:

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

//Define your target URL and HTTP method here
var options = {
  url: 'https://rotogrinders.com/pages/mlb-pitcher-hub-sp-salary-charts-260515',
  method: 'GET'
}

// Use request to grab the HTML defined in options and return the contents in "body"
request(options, function (err, res, body) {
  if (!err && res.statusCode == 200) {

    // Load the "body" with cheerio
    var $ = cheerio.load(body);

    // grab each occurrence of the matched html (Use Chrome developer tools to determine CSS) using Cheerio
    $('tbody').children().each(function(i, element){
      var $element = $(element);
      var name = $element.children().eq(0).text().trim();
      var salary = $element.children().eq(3).text().trim();

      // Put the filtered data in an object
      var post = {
        name: name,
        salary: salary
      }
      // Print the object to the console
      console.log(post);
    });
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM