[英]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.