大佬教程收集整理的这篇文章主要介绍了pyppeteer的使用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
属于第三方模块进行安装. pip install pyppeteer
在Linux中,如果权限不够则加上. sudo pip install pyppeteer
from pyppeteer import launch
import asyncio
?
async def @H_273_63@main(timeout=30):# 设定时间超时,默认是30秒
# async 用来申明一个函数是一个异步函数
browser = await launch(headless=True,args=["--no-sandBox"])
# 参数说明:
# headless 参数设为false,变为有头模式
# pyppeteer 支持字典和关键字传递参数
page = await browser.newPage()
# 设置页面大小
await page.setViewport(viewport={"width":1280,"height":800})
# 是否启用JS,enabled设为false,则无渲染效果
await page.setJavaScriptEnabled(enabled=TruE)
# 超时时间设置
res = await page.goto(url=url,options={"timeout":1000})
# 响应头
resp_headers = res.headers
# 响应状态
resp_status = res.status
# 等待
await asynico.sleep(2)
# 第二种方法
while not await page.querySELEctor(".t"):
pass
# 滚动到页面底部
await page.evaluate(‘windows.scrollBy(0,document.body.scrollHeight)‘)
# 截图报存图片
await page.screenshot({"path": "toutIao.png"})
# 获取cookie
print(await page.cookies())
# 打印页面文本信息
print(await page.content())
# 在页面上执行js脚本
dimensions = await page.evaluate(pageFunction=‘‘‘() => {
return {
width: document.documentElement.clientWidth,// 页面宽度
height: document.documentElement.clientHeight,// 页面高度
deviceScaleFactor: window.devicePixelRatio,// 像素比 1.0000000149011612
}
}‘‘‘,force_expr=falsE) # force_expr=false 执行的是函数
print(dimensions)
# 只获取文本 执行 js 脚本 force_expr 为 True 则执行的是表达式
content = await page.evaluate(pageFunction=‘document.body.textContent‘,force_expr=TruE)
print(content)
?
# 打印当前页标题
print(await page.title())\
# 抓取其他信息
"""
1.选择器,Page.querySELEctor()
2.选择器,Page.querySELEctorAll()
3.xpath表达式,Page.xpath()
"""
# 使用querySELEctor()
element = await page.querySELEctor(".Feed-infinite-wrapper > ul>li") # 只抓取一个
print(element)
# 获取所有的文本信息,执行js代码
content = await page.querySELEctorAll(‘(element) => element.textContent‘,element)
print(content)
# 使用Xpath
# elements = await page.xpath(‘//div[@class="title-Box"]/a‘)
# 使用选择器全选
elements = await page.querySELEctorAll(".title-Box a")
for item in elements:
print(await item.getProperty(