DrissionPage/docs/入门指南/快速上手.md
2022-01-19 21:41:22 +08:00

144 lines
4.4 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 MixPage
```
# 初始化
s 模式是无须初始化的,导入后就可以直接使用。
d 模式因为使用浏览器,须要配置浏览器和对应的 driver。
## 自动配置方式
身为自动化工具DrissionPage 拥有自动识别电脑安装的 Chrome 版本并自动下载对应 chromedriver 功能。这时只要直接创建页面对象即可正常使用。
第一次运行后,程序会记录 Chrome 和 driver 路径到配置文件,以后直接调用。
```python
page = MixPage()
page.get('https://www.baidu.com')
```
## 手动配置方式
!> **注意:** <br>这段代码只用于设置配置文件中的路径信息,**运行一次即可**,勿写到正式程序里 。
有些版本的 Chrome 程序无法获取正确的 driver就须要手动配置路径。
新建一个**临时文件** ,修改并运行以下代码,可手动指定 Chrome 和 driver 路径,记录到配置文件,以后程序会自动读取其中的配置,无须再写。
如果想把配置信息写在代码里,请查阅“使用方法”里相关章节。
```python
from DrissionPage.easy_set import set_paths
# 请将以下路径修改为本机实际路径chrome_path多数情况下可省略
set_paths(driver_path=r"D:\chrome\chromedriver.exe",
chrome_path=r"D:\chrome\chrome.exe")
```
当出现以下提示,说明设置成功:
```shell
正在检测可用性...
版本匹配,可正常使用。
```
各版本 driver 下载地址:
- 国外https://chromedriver.chromium.org/downloads
- 国内http://npm.taobao.org/mirrors/chromedriver
# 上手示例
现在,我们通过一些例子,来直观感受一下 DrissionPage 的工作方式。
## 爬取新冠排行榜
网址https://www.outbreak.my/zh/world
此示例爬取全球新冠情况排行榜。该网站是纯 html 页面,特别适合 s 模式爬取和解析。
![](https://gitee.com/g1879/DrissionPage-demos/raw/master/pics/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20211231225026.jpg)
```python
from DrissionPage import MixPage
# 用 s 模式创建页面对象
page = MixPage('s')
# 访问数据网页
page.get('https://www.outbreak.my/zh/world')
# 获取表头元素
thead = page('tag:thead')
# 获取表头列,跳过其中的隐藏的列
title = thead.eles('tag:th@@-style:display: none;')
data = [th.text for th in title]
print(data) # 打印表头
# 获取内容表格元素
tbody = page('tag:tbody')
# 获取表格所有行
rows = tbody.eles('tag:tr')
for row in rows:
# 获取当前行所有列
cols = row.eles('tag:td')
# 生成当前行数据列表(跳过其中没用的几列)
data = [td.text for k, td in enumerate(cols) if k not in (2, 4, 6)]
print(data) # 打印行数据
```
输出:
```shell
['总 (205)', '累积确诊', '死亡', '治愈', '现有确诊', '死亡率', '恢复率']
['美国', '55252823', '845745', '41467660', '12,939,418', '1.53%', '75.05%']
['印度', '34838804', '481080', '34266363', '91,361', '1.38%', '98.36%']
['巴西', '22277239', '619024', '21567845', '90,370', '2.78%', '96.82%']
['英国', '12748050', '148421', '10271706', '2,327,923', '1.16%', '80.57%']
['俄罗斯', '10499982', '308860', '9463919', '727,203', '2.94%', '90.13%']
['法国', '9740600', '123552', '8037752', '1,579,296', '1.27%', '82.52%']
......
```
## 登录 gitee 网站
网址https://gitee.com/login
此示例演示使用控制浏览器的方式自动登录 gitee 网站。
```python
from DrissionPage import MixPage
# 用 d 模式创建页面对象(默认模式)
page = MixPage()
# 跳转到登录页面
page.get('https://gitee.com/login')
# 定位到账号文本框并输入账号
page.ele('#user_login').input('你的账号')
# 定位到密码文本框并输入密码
page.ele('#user_password').input('你的密码')
# 点击登录按钮
page.ele('@value=登 录').click()
```
# 说明
无论电脑安装的 Chrome 能否正常使用,我们都建议使用绿色版 Chrome。因为 driver 的更新速度往往跟不上浏览器的更新速度,一旦浏览器自动升级而 driver
未出新版,就会出现无法启动的情况。所以建议用关闭升级功能的绿色版浏览器,使程序运行更稳定。
如果计划程序打包成 exe 文件,就不能使用默认配置文件记录配置,具体方法请查看“使用方法->打包程序”章节。