https://blog.csdn.net/mengxiangxingdong/article/details/100128587
await page.waitFor(5 * 1000); //睡眠5s'
await page.waitForSelector('.article-list h4 a', {timeout: 10 * 1000}); //等元素出现, 10秒后失效
await page.goto('https://home.51cto.com/index', {timedout: 10 * 1000, waitUntil: 'networkidle2'}); // 有两个请求响应时
const response = await page.waitForNavigation({timedout: 10 * 1000, waitUntil: 'networkidle0'}); // 不再有网络响应时
-
模拟手机打开页面https://blog.csdn.net/mengxiangxingdong/article/details/102648326
-
滑块解决方案 https://blog.csdn.net/mengxiangxingdong/article/details/102558074
4.安装puppeteer
建立Node工程后,首先需要引入puppeteer包,使用npm命令即可:
npm install puppeteer
但这儿有一个需要注意的地方是,这个包会下载一个Chromium,由于网络原因,这个过程是非常慢的,并且也会造成重复下载,每个工程都要下载一个,费时费力。
这个问题的解决方法是,安装时添加--ignore-scripts命令跳过Chromium的下载,
npm install puppeteer **--ignore-scripts**
-
点击链接后的加载
await page.goto('https://example.com');
page.click('a');
await page.waitForNavigation(); -
waitUntil:代表什么时候才认为导航加载成功
networkidle0: 在 500ms 内没有网络连接时就算成功(全部的request结束),才认为导航结束
networkidle2: 500ms 内有不超过 2 个网络连接时就算成功(还有两个以下的request),就认为导航完成。
网友评论