使用剧作家在python中刮擦无可比拟的
#编程 #python #codenewbie #webscraping

自动化工作流程with scripts以有效地获得结果,比手动完成的工作要好。刮擦网络是关于以干净且可读的格式提取数据,开发人员,数据分析师和科学家会在道德上进行读取和下载其数据的整个网页。

在本文中,您将学习和探索使用使用Scraping Browser的优质代理网络连接到大型数据集的明亮数据基础架构的好处。

让我们开始。

什么是明亮的数据?

Bright Data是一个网络数据平台,可帮助组织,小型企业和学术机构有效,可靠和灵活地检索重要的公共网络数据。 Bright Data包含GDPR和CCPA兼容的现成数据集。

什么是剧作家?

剧作家用来浏览目标网站,就像伪造者与网站的HTML代码相互作用的功能以提取所需的数据。

安装

在编写单个脚本之前,请在命令行接口(CLI)或终端中使用此命令在系统上检查Python:

    python --version

如果运行命令后终端中不存在该版本,请转到official website of Python将其下载到您的本地计算机。

连接到刮擦浏览器

Bright Data上创建一个新帐户,以访问与您的应用程序的代理集成的刮擦浏览器的管理仪表板。

在仪表板的左窗格上,单击代理并刮擦Infra 图标。

proxies and scraping infra

向下滚动页面,选择刮擦浏览器。之后,单击启动按钮。

Scraping browser

下一个屏幕允许您重命名代理名称。单击添加代理按钮以弹出提示显示消息。通过单击按钮来接受默认更改。

naming the proxy

host, username, and password

接下来,单击 查看代码和集成示例按钮以在Python中配置代码。

在Python中创建环境变量

环境变量是存储的秘密密钥和凭据,其值的形式是配置为在开发过程中保持应用程序运行并防止未经授权访问的值。

类似于 node.js 应用中,创建一个新文件在root Directory中。但是首先,您需要安装Python软件包python-dotenv

    pip3 install python-dotenv

软件包读取环境变量设置的键值对。

要确认软件包python-dotenv的安装,请运行此命令,该命令列出所有已安装的软件包:

    pip3 list

接下来,将此代码复制到.env文件:

.env

    USERNAME="<user-name>"
    HOST="<host>"

用明亮数据中的值替换引号

用剧作家创建网络刮板

在项目目录中,创建一个名为app.py的新文件来处理刮擦网络。

安装软件包
您需要使用此命令安装这两个库asyncio和剧作家:

    pip3 install asyncio
    pip3 install playwright
  • 异步:它是使用异步/等待语法编写并发代码的库
  • 剧作家:此模块提供了一种启动浏览器实例的方法

现在,复制此代码:

app.py

    import asyncio
    import os
    from playwright.async_api import async_playwright
    from dotenv import load_dotenv

    load_dotenv()

    auth = os.getenv("USERNAME")
    host = os.getenv("HOST")

    browser_url = f'wss://{auth}@{host}'

    async def main():
        async with async_playwright() as pw:
            print('connecting');
            browser = await pw.chromium.connect_over_cdp(browser_url)
            print('connected');
            page = await browser.new_page()
            print('goto')
            await page.goto('http://lumtest.com/myip.json', timeout=120000)
            print('done, evaluating')
            print(await page.evaluate('()=>document.documentElement.outerHTML'))
            await browser.close()

    asyncio.run(main())

上面的代码执行以下操作:

  • 导入必要的模块,例如Asyncio,async_playwrightload_dotenvos
  • load_dotenv()负责从.env文件读取变量
  • os.getenv()方法返回环境变量键的值
  • main()函数是异步的,在功能中,剧作家模块连接到数据区
  • new_page()方法获取页面html,并使用goto方法,带有2分钟的超时到目标网站
  • 虽然page.evaluate()方法将查询页面并在访问页面元素并启动事件后打印出结果
  • 使用browser.close()方法
  • 关闭浏览器是必须的

要测试此应用程序,请使用命令运行:

    python app.py

结论

评估和提取有意义的数据的前景是光明数据提供的核心和操作。

本教程向您展示了如何将Python中的刮擦浏览器与剧作家软件包一起读取网站的数据。

今天尝试Bright Data