- 选项卡操作
async def main():browser = await launch(headless=False, args=['--disable-infobars'])page = await browser.newPage()await page.goto('https://mp.weixin.qq.com/')page = await browser.newPage()await page.goto('https://www.baidu.com')pages = await browser.pages()print('Pages: ', pages)page1 = pages[1]await page1.bringToFront()await asyncio.sleep(20)await browser.close()我们在这里调用了两次newPage , 访问了两个网站 , 当切换选项卡的时候 , 我们只要用对应页面的page对象调用其bringToFront方法即可 。- 常见操作
async def main():browser = await launch(headless=False, args=['--disable-infobars'])page = await browser.newPage()await page.goto('https://www.baidu.com')await page.goto('https://pan.baidu.com')# 后退await page.goBack()# 前进await page.goForward()#保存PDFawait page.pdf(path='test.pdf')#截图await page.screenshot()# 设置页面await page.setContent('<h1>Hello World</h1>')# 设置User-Agentawait page.setUserAgent('Python')# 设置Headersawait page.setExtraHTTPHeaders(headers={})# 关闭await page.close()await browser.close()这里有一个PDF保存真的非常方便 , 我之前用selenium保存网页成PDF , 找了很多处理方式 , 还比较麻烦 , Pyppeteer这里就调用一个函数就OK了 , 但是要注意两点 , 否则保存不成功:1. 必须使用无头模式 。2.要指定保存路径path , 否则不会保存在本地 。- 输入并点击
async def main():browser = await launch(headless=False)page = await browser.newPage()await page.goto('https://www.baidu.com')await page.waitForSelector('#su')await page.type('#kw', 'python')await page.click('#su', options={'button': 'left','clickCount': 1,'delay': 300})await asyncio.sleep(10)await browser.close()click就是点击事件 , 第一个参数是选择器 , 第二个参数是几项配置:button: 鼠标按钮 , 分为left、middle、right
clickCount: 点击类型 , 如双击、单击
delay:延迟点击
type方法为输入方法 , 第一个参数传入选择器 , 第二个参数传入内容 。
- 获取网页源码和cookies
content = await page.content()cookies = await page.cookies()- 执行js脚本
out_content = await page.evaluate('''() => {return {width: document.documentElement.clientWidth,height: document.documentElement.clientHeight,deviceScaleFactor: window.devicePixelRatio}}''')- 延时等待
waitForFunction:等待某个JAVAScript方法执行完毕或返回结果
waitForNavigation:等待页面跳转 , 如果没加载出来就会报错
waitForRequest:等待某个特定请求被发出
waitForResponse:等待某个特定请求收到了回应
waitFor:通用的等待方法
通过等待条件 , 我们就能控制页面加载的情况了 。
除了以上我们介绍的东西 , 还有鼠标模拟拖动也是比较重要的 , 这在模拟滑动验证码的时候是非常有用的 , 我们后面再开一篇吧 。
推荐阅读
- 破了这几种爬虫加密算法后,我的路更近了「JS逆向3」
- 「Charles」抓包神器
- Kali技术分享 网站镜像神器Httrack安装及使用
- 硬盘检测修复神器:硬盘哨兵HardDisk Sentinel
- 快速、轻巧,强大!3 个下载神器,分分钟打造 NAS 下载机
- 黑客必用神器“msf”的post模块实战讲解
- 在安卓手机搭建kali环境,手机变成便携式渗透神器
- Python自带爬虫库urllib使用大全
- 免洗护发素可携带的护发神器
- 凭借这5步,我30分钟学会了Python爬虫
