一个简单的puppeteer爬虫
2024-10-06 15:59:05
const puppeteer = require("puppeteer");
const path = require('path');
const pathToExtension = path.join(__dirname, './chrome-mac/Chromium.app/Contents/MacOS/Chromium');
const conf = {
headless: false,
executablePath: pathToExtension,
defaultViewport: {
width: 1300,
height: 900
},
};
(async () => {
const browser = await puppeteer.launch(conf)
const page = await browser.newPage()
await page.goto('https://www.baidu.com/', {waitUntil: 'networkidle2'});
//addScriptTag需要加在goto的后面,然后就可以在evaluate里使用jQuery的语法了。
await page.addScriptTag({
url: 'https://code.jquery.com/jquery-3.2.1.min.js',
});
await page.waitFor('#u1')
// 可以接收evaluate内部打印的console内容
page.on('console',msg=>{
for(let i =0;i<msg.args().length;i++){
console.log(`${i}: ${msg.args([i])}`)
}
})
const result = await page.evaluate(() => {
let data = []; // 初始化空数组来存储数据
let elements = $("#u1"); // 获取所有元素
for (let element of elements){
let title = element.innerText; // 获取标题
let url = element.href;//获取网址
data.push({title,url}); // 存入数组
}
return data;
});
console.log(result);
await page.waitFor(3000);
await browser.close();
})();
最新文章
- 使用自定义签名的https的ssl安全问题解决和metro的webservice调用
- vuejs,router
- CSS颜色模式转换器的实现
- xp系统打开软件程序总是弹出警告窗口,很烦人对不,怎么办呢?进来看
- MapReduce数据流(一)
- css 样式大全
- hdu 1325 Is It A Tree?
- HDU 4611Balls Rearrangement(思维)
- HTTP错误500.22 检测到在集成的托管管道模式下不适用的ASP.NET设置
- jQuery选择器课堂随笔
- 通过Javascript调用微软认知服务情感检测接口的两种实现方式
- QT creator 其他资源(image)的添加以及简单利用
- IntelliJ IDEA设置统一编码utf-8
- ComboBox下拉列表框
- Java设计模式学习记录-观察者模式
- AJAX方法讲解
- 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表&#39;Address&#39;中的标识列指
- Linux 普通用户启动nginx
- CAN总线优势
- Java 跨域 CrossOrigin注解 Filter拦截 Nginx配置
热门文章
- vue中用解构赋值的方法引入组件
- 2 vue学习
- OpenCV实现图象翻转、滤波、锐化
- Templates/Code Combinations
- sql sever 查询用户所有的表和各个表数据量
- 一个基于Scrapy框架的pixiv爬虫
- Linux行编辑器——ed
- ORACLE归档日志满了之后,如何删除归档日志
- doesn&#39;t declare an explicit app_label and isn&#39;t in an application in INSTALLED_APPS.
- 动态规划1——最长递增子序列、最长公共子序列、最长公共子串(python实现)