diff --git a/README.en.md b/README.en.md index c27010e..31f7923 100644 --- a/README.en.md +++ b/README.en.md @@ -859,7 +859,7 @@ page.download(url, save_path,'img','rename', show_msg=True) -## Chrome Quick Settings +## Chrome Settings The configuration of chrome is very cumbersome. In order to simplify the use, this library provides setting methods for common configurations. @@ -899,14 +899,50 @@ do.set_paths(driver_path='D:\\chromedriver.exe', chrome_path='D:\\chrome.exe') # do.set_headless(False).set_no_imgs(True) # Support chain operation drission = Drission(driver_options=do) # Create Drission object with configuration object -page = MixPage(drission) # Create MixPage object with Drission object +page = MixPage(driver_options=do) # Create MixPage object with configuration object -do.save() # Save the currently opened ini file +do.save() # save the currently opened ini file +do.save('D:\\settings.ini') # save to the specified ini file do.save('default') # Save the current settings to the default ini file ``` +## Session Settings + +### SessionOPtions Object + +The SessionOptions object is used to manage the configuration information of the Session. It reads the default ini file configuration information by default when it is created, or you can manually set the required information. + +Configurable properties: + +headers, cookies, auth, proxies, hooks, params, verify, cert, adapters, stream, trust_env, max_redirects. + +**Tips:** cookies can receive information in dict, list, tuple, str, RequestsCookieJar and other formats. + + + +### Instructions + +```python +so = SessionOptions() # read the default ini file to create a SessionOptions object +so = SessionOptions('D:\\settings.ini') # read the specified ini file to create a SessionOptions object +so = SessionOptions(read_file=False) # Do not read the ini file, create an empty SessionOptions object + +so.cookies = ['key1=val1; domain=xxxx','key2=val2; domain=xxxx'] # set cookies +so.headers = {'User-Agent':'xxxx','Accept-Charset':'xxxx'} +so.set_a_header('Connection','keep-alive') + +drission = Drission(session_options=so) # Create Drission object with configuration object +page = MixPage(session_options=so) # Create MixPage object with configuration object + +so.save() # Save the currently opened ini file +so.save('D:\\settings.ini') # save to the specified ini file +so.save('default') # Save the current settings to the default ini file +``` + + + ## Save configuration Because there are many configurations of chrome and headers, an ini file is set up specifically to save common configurations. You can use the OptionsManager object to get and save the configuration, and use the DriverOptions object to modify the chrome configuration. You can also save multiple ini files and call them according to different projects. @@ -2708,6 +2744,161 @@ Return: OptionsManager - return to yourself +## SessionOptions class + +### class SessionOptions() + +Session object configuration class. + +Parameter Description: + +-read_file: bool-whether to read configuration information from ini file when creating +-ini_path: str-the path of the ini file, if it is None, the default ini file will be read + + + +### headers + +headers configuration information. + +Returns: dict + + + +### cookies + +Cookies configuration information. + +Returns: list + + + +### auth + +auth configuration information. + +Returns: tuple + + + +### proxies + +proxies configuration information. + +Returns: dict + + + +### hooks + +hooks configuration information. + +Returns: dict + + + +### params + +params configuration information. + +Returns: dict + + + +### verify + +Verify configuration information. + +Returns: bool + + + +### cert + +cert configuration information. + +Returns: [str, tuple] + + + +### adapters + +Adapters configuration information. + +Returns: adapters + + + +### stream + +stream configuration information. + +Returns: bool + + + +### trust_env + +srust_env configuration information. + +Returns: bool + + + +### max_redirects + +max_redirect configuration information. + +Returns: int + + + +### set_a_header() + +Set an item in headers. + +Parameter Description: + +- attr: str-configuration item name + +- value: str-configured value + +Returns: the current object + + + +### remove_a_header() + +Remove a setting from headers. + +Parameter Description: + +- attr: str-the name of the configuration to be deleted + +Returns: current object + + + +### save() + +Save the settings to a file. + +Parameter Description: + +- path: str-the path of the ini file, pass in'default' and save to the default ini file + +Returns: current object + + + +### as_dict() + +Return the current object as a dictionary. + +Returns: dict + + + ## DriverOptions class ### class DriverOptions() diff --git a/README.zh-cn.md b/README.zh-cn.md index af87651..dc1dabc 100644 --- a/README.zh-cn.md +++ b/README.zh-cn.md @@ -17,9 +17,9 @@ DrissionPage,即 driver 和 session 的合体。 **示例地址:** [使用DrissionPage的网页自动化及爬虫示例](https://gitee.com/g1879/DrissionPage-demos) -**联系邮箱:** g1879@qq.com +**联系邮箱:** g1879@qq.com -**交流QQ群:** 897838127 +**交流QQ群:** 897838127 # 理念及背景 @@ -902,9 +902,10 @@ do.set_paths(driver_path='D:\\chromedriver.exe', chrome_path='D:\\chrome.exe') do.set_headless(False).set_no_imgs(True) # 支持链式操作 drission = Drission(driver_options=do) # 用配置对象创建 Drission 对象 -page = MixPage(drission) # 用Drission对象创建 MixPage 对象 +page = MixPage(driver_options=do) # 用配置对象创建 MixPage 对象 do.save() # 保存当前打开的 ini 文件 +do.save('D:\\settings.ini') # 保存到指定的 ini 文件 do.save('default') # 保存当前设置到默认 ini 文件 ``` @@ -912,16 +913,37 @@ do.save('default') # 保存当前设置到默认 ini 文件 ## Session 设置 - - ### SessionOPtions 对象 SessionOptions 对象用于管理 Session 的配置信息。它创建时默认读取默认 ini 文件配置信息,也可手动设置所需信息。 +可配置的属性: + +headers、cookies、auth、proxies、hooks、params、verify、cert、adapters、stream、trust_env、max_redirects。 + +**Tips:** cookies 可接收 dict、list、tuple、str、RequestsCookieJar 等格式的信息。 + ### 使用方法 +```python +so = SessionOptions() # 读取默认 ini 文件创建 SessionOptions 对象 +so = SessionOptions('D:\\settings.ini') # 读取指定 ini 文件创建 SessionOptions 对象 +so = SessionOptions(read_file=False) # 不读取 ini 文件,创建空的 SessionOptions 对象 + +so.cookies = ['key1=val1; domain=xxxx', 'key2=val2; domain=xxxx'] # 设置 cookies +so.headers = {'User-Agent': 'xxxx', 'Accept-Charset': 'xxxx'} +so.set_a_header('Connection', 'keep-alive') + +drission = Drission(session_options=so) # 用配置对象创建 Drission 对象 +page = MixPage(session_options=so) # 用配置对象创建 MixPage 对象 + +so.save() # 保存当前打开的 ini 文件 +so.save('D:\\settings.ini') # 保存到指定的 ini 文件 +so.save('default') # 保存当前设置到默认 ini 文件 +``` + @@ -2684,6 +2706,160 @@ shadow-root 所依赖的父元素。 +## SessionOptions 类 + +### class SessionOptions() + +Session 对象配置类。 + +参数说明: + +- read_file: bool - 创建时是否从 ini 文件读取配置信息 +- ini_path: str - ini 文件路径,为None则读取默认 ini 文件 + + + +### headers + +headers 配置信息。 + +返回: dict + + + +### cookies + +cookies 配置信息。 + +返回: list + + + +### auth + +auth 配置信息。 + +返回: tuple + + + +### proxies + +proxies 配置信息。 + +返回: dict + + + +### hooks + +hooks 配置信息。 + +返回: dict + + + +### params + +params 配置信息。 + +返回: dict + + + +### verify + +verify 配置信息。 + +返回: bool + + + +### cert + +cert 配置信息。 + +返回: [str, tuple] + + + +### adapters + +adapters 配置信息。 + +返回: adapters + + + +### stream + +stream 配置信息。 + +返回: bool + + + +### trust_env + +srust_env 配置信息。 + +返回: bool + + + +### max_redirects + +max_redirect 配置信息。 + +返回: int + + + +### set_a_header() + +设置 headers 中一个项。 + +参数说明: + +- attr: str - 配置项名称 +- value: str - 配置的值 + +返回: 当前对象 + + + +### remove_a_header() + +从 headers 中删除一个设置。 + +参数说明: + +- attr: str - 要删除的配置名称 + +返回:当前对象 + + + +### save() + +保存设置到文件。 + +参数说明: + +- path: str - ini文件的路径,传入 'default' 保存到默认ini文件 + +返回:当前对象 + + + +### as_dict() + +以字典形式返回当前对象。 + +返回: dict + + + ## DriverOptions 类 ### class DriverOptions()