Pypppeteer

之前做爬虫或者浏览器自动化操作都用selenium ,再配合docker可以进行分布式部署,但是selenium太耗性能,这里有另外个选择puppeteer谷歌浏览器在17年自行开发了Chrome Headless特性,并与之同时推出了puppeteer,可以理解成我们日常使用的Chrome的无界面版本以及对其进行操控的js接口套装

pyppeteer

import asyncio
from pyppeteer import launch

async def main():
    browser = await launch({'headless':False})
    page = await browser.newPage()
    await page.goto('http://http://nifty.dwyjr.cn')
    await page.type('input[name="email"]', 'yujiarong@sailvan.com', {"delay": 10});
    await page.type('input[name="password"]', 'yujiarong', {"delay": 10});
    await page.click('#container > div.cls-content > div > div.panel-body > form > button')
    await page.screenshot({'path': 'example.png'})
    cookies =  await page.cookies() 
    await browser.close()
    print( cookies)

loop = asyncio.get_event_loop()
tasks = [
    asyncio.ensure_future(main()),
    asyncio.ensure_future(main()),
    asyncio.ensure_future(main())
]


loop.run_until_complete(asyncio.wait(tasks))

pyppeteer支持异步,具体操作可以直接看puppeteer的文档 ,pyppeteer的命令差不多

  • 用来截屏
  • 登陆获取cookie
  • 爬去异步渲染的页面信息
  • 并发操作默写不可描述的东西 嘿嘿

  转载请注明: 南归 Pypppeteer

 上一篇
php-fpm 配置文件优化 php-fpm 配置文件优化
PHP-FPM CGI是Common Gateway Interface(通用网管协议),用于让交互程序和Web服务器通信的协议。它负责处理URL的请求,启动一个进程,将客户端发送的数据作为输入,由Web服务器收集程序的输出并加上合适的头部
2018-07-11
下一篇 
concurrent.futures 并发操作 concurrent.futures 并发操作
concurrent.futures模块的基础是Exectuor,Executor是一个抽象类,它不能被直接使用。但是它提供的两个子类ThreadPoolExecutor和ProcessPoolExecutor却是非常有用,顾名思义两者分别
2018-05-11
  目录