Metadata-Version: 2.1
Name: lds-web
Version: 2.2.0
Summary: Web浏览器操作辅助
Home-page: https://github.com/ldsxp/lds_web
Download-URL: https://pypi.org/project/lds_web
Author: lds
Author-email: 85176878@qq.com
License: GNU GPL 3
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Description-Content-Type: text/markdown
Requires-Dist: DrissionPage

# lds_web

## 说明

把使用 DrissionPage 操作 web 浏览器的功能封装为类，方便在不同地方使用

## 代码例子

### get_web_page

```python

    def get_web_page(self):
        # from DrissionPage import ChromiumPage
        # from DrissionPage import WebPage, ChromiumOptions, SessionOptions

        # http://drissionpage.cn/browser_control/connect_browser

        co = ChromiumOptions()  # 使用指定 ini 文件 ini_path=r'./config1.ini'
        # 设置用户文件夹路径。用户文件夹用于存储当前登陆浏览器的账号在使用浏览器时留下的痕迹，包括设置选项等。
        # 一般来说用户文件夹的名称是 User Data。对于默认情况下的 Windows 中的 Chrome 浏览器来说，此文件夹位于 %USERPROFILE%\AppData\Local\Google\Chrome\User Data\，
        # 也就是当前系统登陆的用户目录的 AppData 内。实际情况可能有变，实际路径请在浏览器输入 chrome://version/，查阅其中的个人资料路径或者叫用户配置路径。
        # 若要使用独立的用户信息，可以将 User Data 目录整个复制到自定的其他位置，然后在代码中使用 set_user_data_path() 方法，参数填入自定义位置路径，这样便可使用独立的用户文件夹信息。
        # co.set_user_data_path(path)
        # 使用系统用户设置
        # co.use_system_user_path()  # 使用浏览器默认用户文件夹，浏览器已经打开的时候不能使用

        if self.is_auto_port:
            co.auto_port()

        if self.user_data_path:
            co.set_user_data_path(self.user_data_path)

        so = SessionOptions()  # 使用指定 ini 文件 ini_path=r'./config1.ini'

        # 当同时传入ChromiumOptions和SessionOptions时，两者都有的属性以ChromiumOptions为准。如timeout和download_path
        page = Chromium(addr_or_opts=co, session_options=so)  # 通过配置信息创建
        # page = WebPage(chromium_options='http://127.0.0.1:9222', session_or_options=so)  # 输入地址访问的时候只能访问本机

        # page.quit()  # 彻底关闭内置的Session对象和Driver对象，并关闭浏览器（如已打开）

        # print('所有标签页id组成的列表', page.tabs)

        # 标签管理
        # http://drissionpage.cn/browser_control/browser_object
        # tab = page.get_tab(1)
        # print(tab.rect.window_state)  # 获取窗口状态
        # print(tab.rect.window_location)  # 获取窗口位置
        # print(tab.rect.window_size)  # 获取窗口大小

        # tab.set.window.size(500, 500)  # 设置窗口大小
        # tab.set.window.location(500, 500)  # 设置窗口位置
        # tab.set.window.max()  # 窗口最大化

        # page.get('https://www.baidu.com')
        # print(f'{page.title} cookies', page.cookies())
        # print(f'{page} headers', so.headers)

        return page
```

### run_listen_thread

```

    def run_listen_thread(self, targets=None, is_regex=None, method=None, res_type=True, handle_listen_packet=None):
        """
        开始监听进程，并支持传递参数给 start_listen

        https://drissionpage.cn/browser_control/listener

        此方法用于启动监听器，可以设置获取的目标特征
        可选择多个特征，符合条件的数据包将被获取
        如果监听未停止时调用此方法，已抓取的队列将被清除

        注意：
        当 targets 不为 None，is_regex 会自动设为 False
        即如要使用正则，每次设置 targets 时需显式指定 is_regex=True

        参数:
        - targets (str, list, tuple, set): 默认值为 None。要匹配的数据包 URL 特征。可以用列表指定多个，为 True 时获取所有
        - is_regex (bool): 默认值为 None。设置的 target 是否为正则表达式，为 None 时保持原来设置
        - method (str, list, tuple, set): 默认值为 None。设置监听的请求类型，可指定多个，默认为 ('GET', 'POST')，为 True 时监听所有，为 None 时保持原来设置
        - res_type (str, list, tuple, set): 默认值为 True。设置监听的 ResourceType 类型，可指定多个，为 True 时监听所有，为 None 时保持原来设置
        - handle_listen_packet 处理从网络流量中捕获的数据包
        """
        if self.is_listening:
            self.log("listen线程已在运行")
            return
        # 创建线程并传递参数
        self.is_listening = True
        self.listen_thread = threading.Thread(target=self.start_listen, args=(targets, is_regex, method, res_type, handle_listen_packet), daemon=True)
        self.listen_thread.start()
```



## 接口演示

```python

```

