pyppeteer的使用

pyppeteer的使用,第1张

概述pyppeteer的使用 安装 属于第三方模块进行安装. pip install pyppeteer 在Linux中,如果权限不够则加上. sudo pip install pyppeteer 使用 使用今日头条作为demo from pyppeteer import launch import asyncio ? async def main(timeout=30):# 设定时间超时, 默认是3 pyppeteer的使用 安装

属于第三方模块进行安装. pip install pyppeteer

在linux中,如果权限不够则加上. sudo pip install pyppeteer

使用

使用今日头条作为demo

from pyppeteer import launch
import asyncio
?
async def 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[@]/a‘)
   # 使用选择器全选
   elements = await page.querySelectorAll(".Title-Box a")
   for item in elements:
       print(await item.getProperty(
总结

以上是内存溢出为你收集整理的pyppeteer的使用全部内容,希望文章能够帮你解决pyppeteer的使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1024176.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存