当前位置: 首页 > news >正文

宜春企业网站的建设贵阳企业网站模板

宜春企业网站的建设,贵阳企业网站模板,全国卫生机构建设管理系统网站,网站建设方面的销售经验puppeteer 文档:puppeteer.js中文文档|puppeteerjs中文网|puppeteer爬虫教程 Puppeteer本身依赖6.4以上的Node#xff0c;但是为了异步超级好用的async/await#xff0c;推荐使用7.6版本以上的Node。另外headless Chrome本身对服务器依赖的库的版本要求比较高#xff0c;c… puppeteer 文档:puppeteer.js中文文档|puppeteerjs中文网|puppeteer爬虫教程 Puppeteer本身依赖6.4以上的Node但是为了异步超级好用的async/await推荐使用7.6版本以上的Node。另外headless Chrome本身对服务器依赖的库的版本要求比较高centos服务器依赖偏稳定v6很难使用headless Chrome提升依赖版本可能出现各种服务器问题包括且不限于无法使用ssh最好使用高版本服务器。 Puppeteer因为是一个npm的包所以安装很简单 pnpm i puppeteer-core puppeteer会自动安装一个谷歌浏览器的安装包所以选择core版但是得指定启动路径使用和例子 Puppeteer类似其他框架通过操作Browser实例来操作浏览器作出相应的反应。 const puppeteer require(puppeteer);(async () {const browser await puppeteer.launch();const page await browser.newPage();await page.goto(http://rennaiqian.com);await page.screenshot({path: example.png});await page.pdf({path: example.pdf, format: A4});await browser.close(); })();上述代码通过puppeteer的launch方法生成了一个browser的实例对应于浏览器launch方法可以传入配置项比较有用的是在本地调试时传入{headless:false}可以关闭headless模式。 const browser await puppeteer.launch({headless:false})browser.newPage方法可以打开一个新选项卡并返回选项卡的实例page通过page上的各种方法可以对页面进行常用操作。上述代码就进行了截屏和打印pdf的操作。 一个很强大的方法是page.evaluate(pageFunction, ...args)可以向页面注入我们的函数这样就有了无限可能 const puppeteer require(puppeteer);(async () {const browser await puppeteer.launch();const page await browser.newPage();await page.goto(http://rennaiqian.com);// Get the viewport of the page, as reported by the page.const dimensions await page.evaluate(() {return {width: document.documentElement.clientWidth,height: document.documentElement.clientHeight,deviceScaleFactor: window.devicePixelRatio};});console.log(Dimensions:, dimensions);await browser.close(); })();需要注意的是evaluate方法中是无法直接使用外部的变量的需要作为参数传入想要获得执行的结果也需要return出来。因为是一个开源一个多月的项目现在项目很活跃所以使用时自行查找api才能保证参数、使用方法不会错。 调试技巧 ① 关掉无界面模式有时查看浏览器显示的内容是很有用的。使用以下命令可以启动完整版浏览器 const browser await puppeteer.launch({headless: false})② 减慢速度slowMo选项以指定的毫秒减慢Puppeteer的操作。这是另一个看到发生了什么的方法 const browser await puppeteer.launch({headless:false,slowMo:250 });③捕获console的输出,通过监听console事件。在page.evaluate里调试代码时这也很方便 page.on(console, msg console.log(PAGE LOG:, ...msg.args)); await page.evaluate(() console.log(url is ${location.href}));爬虫实践 很多网页通过user-agent来判断设备可以通过page.emulate(options)来进行模拟。options有两个配置项一个为userAgent另一个为viewport可以设置宽度(width)、高度(height)、屏幕缩放(deviceScaleFactor)、是否是移动端(isMobile)、有无touch事件(hasTouch)。 const puppeteer require(puppeteer); const devices require(puppeteer/DeviceDescriptors); const iPhone devices[iPhone 6];puppeteer.launch().then(async browser {const page await browser.newPage();await page.emulate(iPhone);await page.goto(https://www.example.com);// other actions...await browser.close(); });上述代码则模拟了iPhone6访问某网站其中devices是puppeteer内置的一些常见设备的模拟参数。 很多网页需要登录有两种解决方案 让puppeteer去输入账号密码 常用方法点击可以使用page.click(selector[, options])方法也可以选择聚焦page.focus(selector)。 输入可以使用page.type(selector, text[, options])输入指定的字符串还可以在options中设置delay缓慢输入更像真人一些。也可以使用keyboard.down(key[, options])来一个字符一个字符的输入。 如果是通过cookie判断登录状态的可以通过page.setCookie(...cookies)想要维持cookie可以定时访问。 Tip有些网站需要扫码但是相同域名的其他网页却有登录就可以尝试去可以登录的网页登录完利用cookie访问跳过扫码。 简单例子 const puppeteer require(puppeteer);(async () {const browser await puppeteer.launch({headless: false});const page await browser.newPage();await page.goto(https://baidu.com);await page.type(#kw, puppeteer, {delay: 100});page.click(#su)await page.waitFor(1000);const targetLink await page.evaluate(() {return [...document.querySelectorAll(.result a)].filter(item {return item.innerText item.innerText.includes(Puppeteer的入门和实践)}).toString()});await page.goto(targetLink);await page.waitFor(1000);browser.close(); })()多元素处理 const puppeteer require(puppeteer-core);(async function () {//puppeteer.launch实例开启浏览器//可以传入一个options对象可以配置为无界面浏览器也可以配置为有界面浏览器//无界面浏览器性能更高更快有界面一般用于调试开式let options {//设置视窗的宽高defaultViewport: {width: 1400,height: 800,},//设置为有界面如果为true即为无界面// headless: false,args: [--window-size1400,700],//指定浏览器路径executablePath: C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe,};let browser await puppeteer.launch(options);//打开新页面let page await browser.newPage();//访问页面await page.goto(https://www.jd.com/);//截屏// await page.screenshot({ path: example.png, fullPage: true });//获取页面内容// page.$eval相当于querySelector,然后在对这个元素进行dom操作// page.$$eval相当于querySelectorAll,然后在对这个元素进行dom操作let input await page.$(#key);await input.type(手机);await page.keyboard.press(Enter);await page.waitForSelector(.gl-warp.gl-item:last-child);const lis await page.$$eval(.gl-warp.gl-item, els //这个el就是获取到的对象//这里可以使用dom操作// console.log(el);els.map(item item.innerText));//这个lis就是上面回调函数的返回值console.log(lis);//关闭浏览器await browser.close(); })();输入文本与元素点击 const puppeteer require(puppeteer-core); (async function () {let options {defaultViewport: {width: 1400,height: 800,},headless: false,args: [--window-size1400,700],executablePath: C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe,};let browser await puppeteer.launch(options);let page await browser.newPage();await page.goto(https://www.ygdy8.com/index.html);//获取页面内容// page.$相当于querySelector// page.$$相当于querySelectorAll//这些返回的是一个elementHandle对象const input await page.$(input[namekeyword]); // 定位输入框/* 1input.focus()page.keyboard.type(电影) *///2await input.type(电影);/* 1 elementHandle.click()const search await page.$(input[nameSubmit]); // 定位搜索按钮await search.click(); // 点击 *///2await page.click(input[nameSubmit]); })();获取元素的文本值 const puppeteer require(puppeteer-core); (async function () {let options {defaultViewport: {width: 1400,height: 700,},args: [--window-size1400,700],headless: false,executablePath: C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe,};let browser await puppeteer.launch(options);let page await browser.newPage();await page.goto(https://www.baidu.com/);let input await page.waitForSelector(#kw);await input.type(hello world);let btn await page.$(#su);btn.click();/* 等待指定的选择器匹配的元素出现在页面中如果调用此方法时已经有匹配的元素那么此方法立即返回。如果指定的选择器在超时时间后扔不出现此方法会报错。 返回: PromiseElementHandle*/await page.waitForSelector(div#content_left div.result-op.c-container.xpath-log);let text await page.$eval(div#content_left div.result-op.c-container.xpath-log,el el.innerText);console.log(text); })();处理js方法 const puppeteer require(puppeteer-core); (async function () {let options {defaultViewport: {width: 1400,height: 700,},args: [--window-size1400,700],// headless: false,executablePath: C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe,};let browser await puppeteer.launch(options);let page await browser.newPage();await page.goto(https://www.baidu.com/);let input await page.waitForSelector(#kw);await input.type(hello world);let btn await page.$(#su);btn.click();await page.waitForSelector(div#content_left div.result-op.c-container.xpath-log);//里面可以直接写js代码let text await page.evaluate(() {let div document.querySelector(div#content_left div.result-op.c-container.xpath-log);return div.innerText;});console.log(text); })();
文章转载自:
http://www.morning.rhqn.cn.gov.cn.rhqn.cn
http://www.morning.pgkpt.cn.gov.cn.pgkpt.cn
http://www.morning.cwgfq.cn.gov.cn.cwgfq.cn
http://www.morning.krkwp.cn.gov.cn.krkwp.cn
http://www.morning.yxnkr.cn.gov.cn.yxnkr.cn
http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn
http://www.morning.tyjnr.cn.gov.cn.tyjnr.cn
http://www.morning.kxltf.cn.gov.cn.kxltf.cn
http://www.morning.htbgz.cn.gov.cn.htbgz.cn
http://www.morning.jwrcz.cn.gov.cn.jwrcz.cn
http://www.morning.tklqs.cn.gov.cn.tklqs.cn
http://www.morning.gllhx.cn.gov.cn.gllhx.cn
http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn
http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn
http://www.morning.mpmtz.cn.gov.cn.mpmtz.cn
http://www.morning.yjxfj.cn.gov.cn.yjxfj.cn
http://www.morning.kxnnh.cn.gov.cn.kxnnh.cn
http://www.morning.zmpqh.cn.gov.cn.zmpqh.cn
http://www.morning.nmpdm.cn.gov.cn.nmpdm.cn
http://www.morning.gnfkl.cn.gov.cn.gnfkl.cn
http://www.morning.rqlqd.cn.gov.cn.rqlqd.cn
http://www.morning.yfrbn.cn.gov.cn.yfrbn.cn
http://www.morning.pyzt.cn.gov.cn.pyzt.cn
http://www.morning.dndk.cn.gov.cn.dndk.cn
http://www.morning.jpnw.cn.gov.cn.jpnw.cn
http://www.morning.ndtzy.cn.gov.cn.ndtzy.cn
http://www.morning.mjyrg.cn.gov.cn.mjyrg.cn
http://www.morning.mkczm.cn.gov.cn.mkczm.cn
http://www.morning.wqjpl.cn.gov.cn.wqjpl.cn
http://www.morning.cbqqz.cn.gov.cn.cbqqz.cn
http://www.morning.tsdqr.cn.gov.cn.tsdqr.cn
http://www.morning.jcbjy.cn.gov.cn.jcbjy.cn
http://www.morning.zmyzt.cn.gov.cn.zmyzt.cn
http://www.morning.0dirty.cn.gov.cn.0dirty.cn
http://www.morning.sfmqm.cn.gov.cn.sfmqm.cn
http://www.morning.gqtzb.cn.gov.cn.gqtzb.cn
http://www.morning.drmbh.cn.gov.cn.drmbh.cn
http://www.morning.cknsx.cn.gov.cn.cknsx.cn
http://www.morning.plzgt.cn.gov.cn.plzgt.cn
http://www.morning.qmrsf.cn.gov.cn.qmrsf.cn
http://www.morning.rdqzl.cn.gov.cn.rdqzl.cn
http://www.morning.ywqw.cn.gov.cn.ywqw.cn
http://www.morning.nhzxr.cn.gov.cn.nhzxr.cn
http://www.morning.lynb.cn.gov.cn.lynb.cn
http://www.morning.tfei69.cn.gov.cn.tfei69.cn
http://www.morning.ldpjm.cn.gov.cn.ldpjm.cn
http://www.morning.cknsx.cn.gov.cn.cknsx.cn
http://www.morning.hbqhz.cn.gov.cn.hbqhz.cn
http://www.morning.lslin.com.gov.cn.lslin.com
http://www.morning.dfbeer.com.gov.cn.dfbeer.com
http://www.morning.kxypt.cn.gov.cn.kxypt.cn
http://www.morning.clzly.cn.gov.cn.clzly.cn
http://www.morning.zfcfk.cn.gov.cn.zfcfk.cn
http://www.morning.dbcw.cn.gov.cn.dbcw.cn
http://www.morning.zmlnp.cn.gov.cn.zmlnp.cn
http://www.morning.gcqdp.cn.gov.cn.gcqdp.cn
http://www.morning.hmbtb.cn.gov.cn.hmbtb.cn
http://www.morning.wfbs.cn.gov.cn.wfbs.cn
http://www.morning.cgthq.cn.gov.cn.cgthq.cn
http://www.morning.tldhq.cn.gov.cn.tldhq.cn
http://www.morning.0dirty.cn.gov.cn.0dirty.cn
http://www.morning.jbctp.cn.gov.cn.jbctp.cn
http://www.morning.pplxd.cn.gov.cn.pplxd.cn
http://www.morning.lqypx.cn.gov.cn.lqypx.cn
http://www.morning.cfnsn.cn.gov.cn.cfnsn.cn
http://www.morning.jmspy.cn.gov.cn.jmspy.cn
http://www.morning.hqsnt.cn.gov.cn.hqsnt.cn
http://www.morning.ghqyr.cn.gov.cn.ghqyr.cn
http://www.morning.spqbp.cn.gov.cn.spqbp.cn
http://www.morning.mhnd.cn.gov.cn.mhnd.cn
http://www.morning.dwkfx.cn.gov.cn.dwkfx.cn
http://www.morning.mingjiangds.com.gov.cn.mingjiangds.com
http://www.morning.xtlty.cn.gov.cn.xtlty.cn
http://www.morning.crfyr.cn.gov.cn.crfyr.cn
http://www.morning.nhzxr.cn.gov.cn.nhzxr.cn
http://www.morning.wjtxt.cn.gov.cn.wjtxt.cn
http://www.morning.xdhcr.cn.gov.cn.xdhcr.cn
http://www.morning.bzfld.cn.gov.cn.bzfld.cn
http://www.morning.xgmf.cn.gov.cn.xgmf.cn
http://www.morning.gsyns.cn.gov.cn.gsyns.cn
http://www.tj-hxxt.cn/news/267288.html

相关文章:

  • 网站商城模板网页界面设计主要内容有哪些
  • 沈阳网站制作推广蒲公英路由器登录地址
  • 网站开发 占位符wordpress显示分类文章
  • 长沙做网站哪里好微信网址
  • 聊城做企业网站垦利网站设计
  • 北京个人制作网站有哪些内容微信小程序定制公司
  • 吴江建设局网站沈阳男科医院在线咨询免费
  • 如何设网站主页建湖网站建设公司
  • 想建立什么网站如何让百度能查到自己
  • 佛山网站制作咨询沈阳seo公司
  • 17网站一起做网店增城大连公司招聘
  • 下列关于网站开发中网站上传广东网络公司网站建设
  • vps 同时翻墙和做网站wordpress评论空白
  • 北京网站建设公司 蓝纤科技wordpress如何接入visa支付宝
  • 网站开发前景咋样群晖wordpress修改80端口
  • 重庆网站优化建设网页制作超链接怎么做
  • 商城建设网站公司网站开发研究前景
  • 做网站需要多少钱 爱问知识人wordpress修改样式表
  • php asp网站开发教程常州网站建设优质商家
  • 天堂资源地址在线下载班级优化大师免费下载
  • 怎么创建一个公司网站seo对网店的作用有哪些
  • 做预算查市场价格的网站本地广东中山网站建设
  • 创业初期要建立公司的网站吗手机网站内容规划
  • 随州网站建设哪家便宜成都网站制作-中国互联
  • 手机网站meta做58同城网站花了多少钱
  • 建立一个网站要多久开发直播软件需要多少钱
  • 如何查网站的备案号北京seo百科
  • 年栾洪全单页做网站教程效果图是怎么做出来的
  • 冷色调网站广州短视频制作运营
  • seo网站运营域名备案中网站可以开通