码迷,mamicode.com
首页 > 其他好文 > 详细

pyppeteer 使用教程

时间:2019-06-20 20:08:36      阅读:3787      评论:0      收藏:0      [点我收藏+]

标签:代码   png   调用   卡死   抛出异常   UNC   baidu   false   page   

1 安装模块   pip install pyppeteer   

2  初次调用

import asyncio
from pyppeteer import launch

async def main():
browser = await launch({‘headless‘: False,‘dumpio‘:True, ‘autoClose‘:False,‘args‘: [‘--no-sandbox‘, ‘--window-size=1366,850‘]})
page = await browser.newPage()
await page.setViewport({‘width‘: 1366, ‘height‘: 768})
await page.goto(‘http://www.baidu.com‘)
# await page.screenshot({‘path‘: ‘example.png‘}) 截屏
  
await browser.close()

asyncio.get_event_loop().run_until_complete(main())

# 第一次调用 会开始下载需要的插件工具 ,如果设置成无头浏览器,可能会报超时的错误

3 常用的属性以及方法

title = await  page.title()   #   获取标题 
print(title)
cookie = await page.cookies() # 获取cookie , 字典形式
print(cookie)
targe = page.target # 暂时不清楚
print(targe)
cov = await page.content() # 获取渲染后网页的内容
print(cov)

4  选择器  

使用 page.querySelector如果没有找到指定的对象,则返回None,而不是抛出异常。不管规范不规范,反正比selenium爽多了。

5 避免反爬,可在加载页面之前注入js代码 

在page.goto(xxxx) 前加入以下代码

page.evaluateOnNewDocument(
""" var _navigator = {};
for (name in window.navigator) {
if (name != "webdriver") {
_navigator[name] = window.navigator[name]
}
}
Object.defineProperty(window , ‘navigator‘ ,{
get : () => _navigator,
})
"""
)

6  缺点  ,  当程序中涉及到点击某个标签的话,可能将进程卡死

7 用于爬虫, 效率有待验证

pyppeteer 使用教程

标签:代码   png   调用   卡死   抛出异常   UNC   baidu   false   page   

原文地址:https://www.cnblogs.com/chenxiyuxiao/p/11060949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!