Python爬虫:使用pyppeteer爬取动态加载的网站

简介: Python爬虫:使用pyppeteer爬取动态加载的网站

pyppeteer 类似selenium,可以操作Chrome浏览器

文档:https://miyakogi.github.io/pyppeteer/index.html

github: https://github.com/miyakogi/pyppeteer

安装

环境要求:

python 3.6+

pip install pyppeteer

代码示例

# -*- coding: utf-8 -*-
import asyncio
from pyppeteer import launch
from pyquery import PyQuery as pq
# 最好指定一下自己浏览器的位置,如果不指定会自动下载,太慢了...
executable_path = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
# 示例一: 渲染页面
async def crawl_page():
    # 打开浏览器
    browser = await launch(executablePath=executable_path)
    # 打开tab
    page = await browser.newPage()
    # 输入网址回车
    await page.goto('http://quotes.toscrape.com/js/')
    # 获取内容并解析
    doc = pq(await page.content())
    print('Quotes:', doc('.quote').length)
    # 关闭浏览器
    await browser.close()
# 示例二:截图,保存pdf,执行js
async def save_pdf():
    browser = await launch(executablePath=executable_path)
    page = await browser.newPage()
    await page.goto('http://quotes.toscrape.com/js/')
    # 网页截图保存
    await page.screenshot(path='example.png')
    # 网页导出 PDF 保存
    await page.pdf(path='example.pdf')
    # 执行 JavaScript
    dimensions = await page.evaluate('''() => {
            return {
                width: document.documentElement.clientWidth,
                height: document.documentElement.clientHeight,
                deviceScaleFactor: window.devicePixelRatio,
            }
        }''')
    print(dimensions)
    await browser.close()
if __name__ == '__main__':
    asyncio.get_event_loop().run_until_complete(crawl_page())
    # asyncio.get_event_loop().run_until_complete(save_pdf())

异步编程,这个关键字太多了,看的眼花缭乱

参考

别只用 Selenium,新神器 Pyppeteer 绕过淘宝更简单!

相关文章
|
2月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
2月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
2月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
378 2
|
3月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
745 19
|
2月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
2月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
Web App开发 应用服务中间件 开发工具
python 第一个网站应用
python 第一个网站应用
10886 0
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
315 102
|
3月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
343 104

推荐镜像

更多