我试图刮一个网站,但我没有得到一些元素,因为这些元素是动态创建的.
我在node.js中使用cheerio,我的代码在下面.
var request = require('request');
var cheerio = require('cheerio');
var url = "http://www.bdtong.co.kr/index.php?c_category=C02";
request(url, function (err, res, html) {
var $ = cheerio.load(html);
$('.listMain > li').each(function () {
console.log($(this).find('a').attr('href'));
});
});
Run Code Online (Sandbox Code Playgroud)
此代码返回空响应,因为页面加载时<ul id="store_list" class="listMain">为空.
内容尚未附加.
如何使用node.js获取这些元素?如何使用动态内容抓取页面?
完成Node.js noob,所以不要判断我......
我有一个简单的要求.抓取网站,查找所有产品页面,并从产品页面保存一些数据.
更简单的说完了.
看看Node.js样本,我找不到类似的东西.
请求刮刀:
request({uri:'http://www.google.com'}, function (error, response, body) {
if (!error && response.statusCode == 200) {
var window = jsdom.jsdom(body).createWindow();
jsdom.jQueryify(window, 'path/to/jquery.js', function (window, jquery) {
// jQuery is now loaded on the jsdom window created from 'body'
jQuery('.someClass').each(function () { /* Your custom logic */ });
});
}
});
Run Code Online (Sandbox Code Playgroud)
但是我无法弄清楚如何在刮擦根页面时调用它,或者填充它需要刮掉的数组或网址.
然后是http代理方式:
var agent = httpAgent.create('www.google.com', ['finance', 'news', 'images']);
agent.addListener('next', function (err, agent) {
var window = jsdom.jsdom(agent.body).createWindow();
jsdom.jQueryify(window, 'path/to/jquery.js', function (window, jquery) {
// jQuery is …Run Code Online (Sandbox Code Playgroud) 我正在构建一个Web应用程序作为大学项目(使用Python),我需要从网站上阅读内容.它可能是互联网上的任何网站.
起初我想过使用像BeautifulSoup,lxml这样的Screen Scrapers来阅读内容(作者写的数据)但我无法根据一个逻辑搜索内容,因为每个网站都是根据不同的标准开发的.
因此我想到使用RSS/Atom(使用Universal Feed Parser),但我只能得到内容摘要!但我想要所有内容,而不仅仅是摘要.
那么,是否有一种方法可以使用一个逻辑,我们可以使用像BeautifulSoup,lxml等lib一样阅读网站的内容?
或者我应该使用网站提供的API.
如果我的博客作者博客可以使用谷歌数据API,我的工作变得容易,但麻烦的是,我是否需要为同一份工作为每个不同的API编写代码?
什么是最好的解决方案?
我需要两个工具或脚本在PHP ....
首先,我需要一个工具/ php scriot,可以获取页面给定链接的所有图像,这样我就可以将这些图像存储在我的数据库中,以便稍后将它们显示为链接的缩略图.
其次我需要一个工具/ php脚本,可以获取页面给定链接的标题,描述和快照缩略图.
我怎么能这样做?任何工具或任何PHP脚本??
编辑:当你试图在任何人的墙上张贴"链接"时,我需要类似于Facebook的东西.