puppeteer 抓取网页内容。在另外一个页面显示,并自动提交表单
2018-03-21 09:02
3075 查看
const puppeteer = require(‘puppeteer’);
(async () => {
const browser = await puppeteer.launch({
headless: false,
devtools: true,
timeout: 0 }); //默认超时时间为30000如果设零也不会超时
const page = await browser.newPage();
const viewConfig = {
width: 360,
height: 640,
isMobile: true
};
//设置窗口
page.setViewport(viewConfig);
//跳转
await page.goto(‘https://weekly.75team.com/‘, {
waitUntil: ‘networkidle2’ // 等待网络状态为空闲的时候才继续执行
});
//处理拿到需要的数据
const result = await page.evaluate(() => {
//方法一
// browser.close();
})();
(async () => {
const browser = await puppeteer.launch({
headless: false,
devtools: true,
timeout: 0 }); //默认超时时间为30000如果设零也不会超时
const page = await browser.newPage();
const viewConfig = {
width: 360,
height: 640,
isMobile: true
};
//设置窗口
page.setViewport(viewConfig);
//跳转
await page.goto(‘https://weekly.75team.com/‘, {
waitUntil: ‘networkidle2’ // 等待网络状态为空闲的时候才继续执行
});
//处理拿到需要的数据
const result = await page.evaluate(() => {
//方法一
var list = [...document.querySelectorAll('#bd > div.issues.container > ol > li> a')] return list.map(el => { return { href: el.href.trim(), title: el.innerText } }) //方法二 let data = []; let elements = document.querySelectorAll('.issue-list li'); //获取所有的li for (var element of elements){ // 循环 let title = element.querySelector('a').innerHTML; let url = element.querySelector('a').href; //抓取链接(href)属性 let date = element.querySelector('.date').innerHTML; data.push({title, url,date}); // 存入数组 } return data; }); //跳转到添加的页面 await page.goto('http://yourwebsite.com/add.html', { waitUntil: 'networkidle2' }); console.log(result) //转出数组 //填充数据并提交 await page.type('#title', result.title); await page.type('#url', result.url); await page.type('#date', result.date); await page.waitFor(1000); await page.click('.submit'); // await page.waitFor(3000);
// browser.close();
})();
相关文章推荐
- puppeteer 实例:自动输入表单并提交搜索显示新的页面
- 表单提交到下一个页面后,再点击IE上的后退,如何能让表单内容再次显示出来?(以及当前页禁止IE返回按钮js)
- #在一个文本框中输入“sdfsf”等内容,提交表单后,页面出现错误,不知怎样可以捕获这个异常?
- javascript实现一个html提交的表单数据放到另一个html页面显示
- 指定一个内容,网页中若有span标签含有该内容,则该span标签内的内容不显示在页面中
- Jquery mobile 提交表单转换到另外一个页面或者留在本页面的方案!
- 让一个网页打开的同时自动为另一个网页自动填写表单并提交
- .NET中用弹出窗口添加或修改一个页面,当添加或修改相关内容后按下提交按钮自动刷新页面的JS代码
- webBroswer自动提交表单 webBroser过滤某些标签元素 webBroswer截取网页部分内容 webBroswer 获取 iframe里的元素
- 关于c#的webbrows控件自动填写表单并获取提交后的网页内容
- C#自动登录网页浏览页面 抓取数据
- 编写一个提交、显示的jsp页面
- TextArea提交表单后显示的内容前出现大段的空格问题
- 前一个页面加载完成后,自动跳转到另外一个页面
- RenderAction与RenderPartial及一个页面多个表单提交
- 访问页面表单自动提交
- 8.一个能自动提交和删除的表单
- C#自动登录网页浏览页面 抓取数据
- 今天遇到一个问题,原来在html的form中如果只有一个type="text"的控件,如果在text中点击回车键,就是自动提交表单!
- 在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码