DrissionPage/docs/入门指南/快速上手.md
2022-12-19 19:31:03 +08:00

123 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ✔️ 安装
```shell
pip install DrissionPage
```
升级:
```shell
pip install DrissionPage --upgrade
```
# ✔️ 导入
根据实际须要导入相应对象:
```python
from DrissionPage import WebPage # 集成两种模式,推荐使用
from DrissionPage import MixPage # 集成两种模式基于selenium
from DrissionPage import ChromiumPage # 只控制浏览器无须切换s模式
from DrissionPage import SessionPage # 只收发数据包,无须使用浏览器
from DrissionPage import DriverOptions # 浏览启动参数管理器
from DrissionPage import SessionOptions # Session对象启动参数管理器
```
# ✔️ 第一次使用
如果只使用 s 模式是无须初始化的,导入后就可以直接使用。
如果使用 d 模式,`WebPage`须指定浏览器执行文件路径。`MixPage`还须下载与浏览器版本匹配的 driver 文件。这里只介绍`WebPage`需要的设置。
多数情况下,如果系统内安装了 Chrome 浏览器,或在系统路径中指定了 Chrome 执行文件DrissionPage 运行时会自动从系统路径和注册表Windows中寻找路径可直接运行无须设置。
如果程序没有找到路径,或需要手动设置,可使用以下方法:
新建一个**临时文件** ,修改并运行以下代码,作用是手动指定 Chrome 路径,记录到配置文件,以后程序会自动读取其中的配置,无须再写。
```python
from DrissionPage.easy_set import set_paths
# 请将以下路径修改为本机实际路径
set_paths(chrome_path=r"D:\chrome\chrome.exe") # 浏览器执行文件路径
```
!> **注意:**<br>这段代码只用于设置配置文件中的路径信息,**运行一次即可**,勿写到正式程序里 。
除了把配置信息写在配置文件,还能把信息直接写在代码里,后面章节再详细叙述。
# ✔️ 上手示例
现在,我们通过一些例子,来直观感受一下 DrissionPage 的工作方式。
## 📍 用 d 模式登录 gitee 网站
网址https://gitee.com/login
此示例演示使用控制浏览器的方式自动登录 gitee 网站。
!> **注意:**<br>如果您有已打开的 Chrome 浏览器,请先关闭,否则会造成冲突。后面在 [创建页面对象](%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%5C%E4%BD%BF%E5%88%9B%E5%BB%BA%E9%A1%B5%E9%9D%A2%E5%AF%B9%E8%B1%A1.md) 章节再介绍多 Chrome 浏览器共存的方法。
```python
from DrissionPage import WebPage
# 用 d 模式创建页面对象(默认模式)
page = WebPage()
# 跳转到登录页面
page.get('https://gitee.com/login')
# 定位到账号文本框并输入账号
page.ele('#user_login').input('你的账号')
# 定位到密码文本框并输入密码
page.ele('#user_password').input('你的密码')
# 点击登录按钮
page.ele('@value=登 录').click()
```
## 📍 用 s 模式爬取 gitee 网站开源列表
以下代码可直接运行:
```python
from DrissionPage import WebPge
# 用 s 模式创建页面对象
page = WebPage('s')
for i in range(1, 4):# 爬取3页
# 跳转到第几页
p.get(f'https://gitee.com/explore/all?page={i}')
# 遍历所有库链接并打印
for link in p.eles('.title project-namespace-path'):
print(link.text, link.link)
```
结果:
```
小熊派开源社区/BearPi-HM_Nano https://gitee.com/bearpi/bearpi-hm_nano
明月心/PaddleSegSharp https://gitee.com/raoyutian/PaddleSegSharp
RockChin/QChatGPT https://gitee.com/RockChin/QChatGPT
TopIAM/eiam https://gitee.com/topiam/eiam
以下省略。。。
```
## 📍 `ChromiumPage`和`SessionPage`
上面两个例子都不用转换模式,可以不需要用`WebPage`,而使用对应模式的页面对象也可以,使用方法是一样的。
```python
from DrissionPage import ChromiumPage
from DrissionPage import SessionPage
d_page = ChromiumPage() # 用于控制浏览器
s_page = SessionPage() # 用于收发数据包
# 以下省略……
```
# ✔️ 说明
无论电脑安装的 Chrome 能否正常使用,都建议使用绿色版 Chrome并且设置`user_data_path`
如果计划程序打包成 exe 文件,就不能使用默认配置文件记录配置,具体方法请查看“使用方法->打包程序”章节。