title: pyppeteer初探 tags: [] id: '2246' categories:
前面暂时解决了倒霉微信的发信问题,现在可以使用crontab定时每天早上将下面这个腾讯在线文档的表格的二维码发到群里了,下面还需要每天下午自动获取当天的填写情况,发送一条提醒消息到群里。这些在线表格就是不给个人提供api,腾讯文档明说要执照,金山文档就更过分了,可以跳过执照注册试用账号,结果折腾半天调通了api,发现试用账号没有获取文档的权限,我可去你**的。没办法,总不能博主每天在群里吼吧,只好先来学习一下pyppeteer了。
用了保护所选范围+冻结+条件格式+数据验证构建的简易核酸记录表,要求在校同学每日填报
然后复制链接到本机打开就行了
#!/usr/bin/bash
/home/limour/.local/bin/jupyter notebook --no-browser --ip=`ifconfig grep 192.168 awk -F' ' '{print $2}'`
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则用上面的调用方式