# pyppeteer初探

前面暂时解决了倒霉微信的发信问题，现在可以使用crontab定时每天早上将下面这个腾讯在线文档的表格的二维码发到群里了，下面还需要每天下午自动获取当天的填写情况，发送一条提醒消息到群里。这些在线表格就是不给个人提供api，腾讯文档明说要执照，金山文档就更过分了，可以跳过执照注册试用账号，结果折腾半天调通了api，发现试用账号没有获取文档的权限，我可去你**的。没办法，总不能博主每天在群里吼吧，只好先来学习一下pyppeteer了。

用了保护所选范围+冻结+条件格式+数据验证构建的简易核酸记录表，要求在校同学每日填报

- 准备一个内存充足的服务器，先用之间的虚拟机折腾一下
- sudo apt install python3-pip
- pip3 install pyppeteer -i https://pypi.tuna.tsinghua.edu.cn/simple
- /home/limour/.local/bin/pyppeteer-install
- Chromium extracted to: /home/limour/.local/share/pyppeteer/local-chromium/588429
- sudo apt-get install gconf-service libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxss1 libxtst6 libappindicator1 libnss3 libasound2 libatk1.0-0 libc6 ca-certificates fonts-liberation lsb-release xdg-utils wget #解决依赖问题
- sudo apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy #解决中文乱码

## 装个Jupyter方便调试

- pip3 install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple
- pip3 install -i http://pypi.douban.com/simple –trusted-host pypi.douban.com jupyter_contrib_nbextensions
- /home/limour/.local/bin/jupyter contrib nbextension install –user
- pip3 install -i http://pypi.douban.com/simple –trusted-host pypi.douban.com jupyter_nbextensions_configurator
- /home/limour/.local/bin/jupyter nbextensions_configurator enable –user
- pip3 install nbconvert==5.6.1 -i http://pypi.douban.com/simple –trusted-host pypi.douban.com
- ifconfig grep 192.168 看一下虚拟机ip
- nano jupyter.sh & chmod +x jupyter.sh
- ./jupyter.sh
- 然后复制链接到本机打开就行了

    1
    2

    #!/usr/bin/bash
    /home/limour/.local/bin/jupyter notebook --no-browser --ip=`ifconfig grep 192.168 awk -F' ' '{print $2}'`

## 给博客首页截个图

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    import asyncio, time
    from pyppeteer import launch
    async def main():
        browser = await launch(ignoreHTTPSErrors=True ,headless=True, dumpio=True, autoClose=False,
                               args=['--no-sandbox', '--window-size=1920,1080', '--disable-infobars',
                                    '--disable-extensions', '--disable-gpu', '--disable-software-rasterizer',
                                    '--ignore-certificate-errors', '--allow-running-insecure-content',
                                    'blink-settings=imagesEnabled=false'])   # 进入无头模式
        page = await browser.newPage()           # 打开新的标签页
        await page.goto('https://limour.top/') # 访问主页
        # evaluate()是执行js的方法，js逆向时如果需要在浏览器环境下执行js代码的话可以利用这个方法
        # js为设置webdriver的值，防止网站检测
        await page.evaluate('''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => false } }) }''')
        await page.screenshot({'path': 'limour.png'})

    #     page_text = await page.content()   # 获取网页源码
    #     print(page_text)
        time.sleep(1)
    # asyncio.get_event_loop().run_until_complete(main()) 原生的调用方法
    await main()#Jupyter调用方式，非Jupyter则用上面的调用方式

uncategorized
pyppeteer初探
https://occdn.limour.top/2246.html
Author
Limour
Posted on
August 14, 2022
Licensed under
puppeteer获取腾讯文档在线表格内容 Previous
解决虚拟机上执行sudo非常慢的问题 Next

#### Search

Keyword