puppeteer php,puppeteer 页面爬取实例(元素遍历)

内容提取

const puppeteer = require('puppeteer');

var url = process.argv.splice(2)[0];

/**

* 提取内容

* /usr/local/bin/node get_cont.js 'http://www.baidu.com?id=456'

*

* 返回 所有信息

*/

(async () => {

const browser = await puppeteer.launch({

executablePath: '/usr/bin/google-chrome',

headless: true,

args: ['--no-sandbox', '--disable-setuid-sandbox']

});

const page = await browser.newPage();

await page.goto(url);

//标题名称

const name = await page.$eval('.detail_xq h2', e => e.innerHTML);

//提取基本内容

const c_list = await page.$$eval('.detail_xq ul li',e=>{

var dd = {};

for( var i = 0;i

if(e[i].children.length < 2){

dd[i] = e[i].children[0].innerHTML;

}else{

dd[i] = e[i].children[0].innerHTML.replace(/\n/g,'').replace(/\t/g,'').trim()+e[i].children[1].innerHTML.replace(/\n/g,'').replace(/\t/g,'').trim();

}

}

return dd;

});

//提取简介

const c_descript = await page.$$eval('.d_ldjj',e=>{

var dd = {};

for( var i = 0;i

dd[i] = e[i].querySelector("h2").innerHTML+":";

for (var j = 0;j

dd[i] += '#XX#'+e[i].querySelectorAll("p")[j].innerHTML.replace(/\n/g,'').replace(/\t/g,'').trim();

}

}

return dd;

});

var len = Object.keys(c_list).length;

for (var p in c_descript) {

c_list[len] = c_descript[p];

len ++;

}

var data = {};

data['title'] = name;

data['msg'] = c_list;

console.log(JSON.stringify(data));

browser.close();

})();

列表提取

const puppeteer = require('puppeteer');

var url = process.argv.splice(2)[0];

/**

* 提取列表内容

* /usr/local/bin/node test.js 'url'

*

* 返回

*/

(async () => {

const browser = await puppeteer.launch({

executablePath: '/usr/bin/google-chrome',

headless: true,

args: ['--no-sandbox', '--disable-setuid-sandbox']

});

const page = await browser.newPage();

await page.goto(url);

//提取时间

const date_list = await page.$$eval('.list_list ul li .fr', files => {

var dd = {};

var reg = /[0-9]{4}\-[0-9]{2}\-[0-9]{2}/;

for( var i = 0;i

dd[i] = reg.exec(files[i].innerHTML)[0];

}

return dd;

});

//提取

const date_cnv = await page.$$eval('.list_list ul li p a', files => {

var dd = {};

for( var i = 0;i

dd[i] = files[i].innerHTML;

}

return dd;

});

var data = {};

data['date'] = date_list;

data['cnv'] = date_cnv;

console.log(JSON.stringify(data));

browser.close();

})();

本作品采用《CC 协议》,转载必须注明作者和本文链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值