python小技能: 【自动回复社区帖子的留言】搭建selenium与ChromeDriver环境教程(Mac版本)

简介: python小技能: 【自动回复社区帖子的留言】搭建selenium与ChromeDriver环境教程(Mac版本)

引言

  1. 搭建selenium与ChromeDriver环境
  2. 案例:自动回复社区帖子的留言

I 搭建selenium与ChromeDriver环境

  1. 安装python
  2. 下载驱动:chromedriver.chromium.org、http://npm.taobao.org/mirrors/chromedriver
  3. 安装selenium

1.1 安装pip

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。

pip --version     # Python2.x 版本命令
pip3 --version    # Python3.x 版本命令

在Python2.7的安装包中,easy_install.py是默认安装的,而pip需要我们手动安装。

方式1

sudo easy_install pip

方式2: curl https://bootstrap.pypa.io/pip/2.7/get-pip.py |python

Installing collected packages: pip
  WARNING: The scripts pip, pip2 and pip2.7 are installed in '/Users/mac/Library/Python/2.7/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-20.3.4
#python3的安装方式:curl https://bootstrap.pypa.io/get-pip.py | python3
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本
$ sudo python get-pip.py    # 运行安装脚本

1.2 安装selenium

selenium是一个web自动化工具,selenium测试直接运行在浏览器中,就像是真正的用户在操作一样。支持的浏览器有IE、Firefox、Safari、Google、Opera等。

  • pip3 install selenium

Successfully installed selenium-3.141.0 urllib3-1.25.10

➜  bin git:(master) ✗  pip3 show selenium
Name: selenium
Version: 4.1.0

Python2.7版本安装selenium

在命令行输入python -m pip install -U selenium 导入selenium都会提示错,因为电脑有两个python路径 /usr/local/lib/ /Library/Python/2.7(Mac 自带的)

1.3 下载驱动

  • 从官网chromedriver.chromium.org下载可执行文件即可。

将chromedriver移至/usr/bin目录下,或者其他path目录都行。(/Users/mac/bin) 保证版本和你安装的Chrome的版本一致即可

image.png

➜  ~ cat .bash_profile
export PATH="$HOME/bin:$HOME/code/flutter/bin:$PATH"

测试是否可运行

➜  ~ chromedriver
Starting ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

II 案例:自动回复社区留言【Selenuim版本】

仅供交流

脚本1: 保存已登录cookie

脚本2:自动回五星

两个脚本最好在同一目录下

image.png

2.1 保存已登录cookie

运行脚本, 然后登录账号获取并保持已登录cookie

基于python3 获取登录之后的token信息

 python3 ./csdnToken.py
#!/usr/bin/env python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
import time
import json
browser = webdriver.Chrome()
browser.get("https://passport.csdn.net/newlogin")
flag = True
print("wlogin")
while flag:
    try:
        browser.find_element(By.XPATH,
            "//a[@class='hasAvatar']")
        flag = False
    except NoSuchElementException as e:
        time.sleep(3)
print("save cookie...")
with open('cookie_csdn.txt', 'w', encoding='utf-8') as f:
    json.dump(browser.get_cookies(), f)
# browser.close()
print("exit browser ")

Python 文件操作中的读写模式:open(路径+文件名, 读写模式, 编码)

读写模式:

r :只读

r+ : 读写

w :新建(会对原有文件进行覆盖)

a :追加

b :二进制文件

2.2 回五星和留下信息

遍历帖子的留言,提取URL之后去填写自己帖子的链接和评论信息。

回五星的方法。

def star():
    try:
        browser.find_element(By.CSS_SELECTOR,
            "div.el-rate > span:nth-child(5) > i")
    except NoSuchElementException as e:
        return 0
    collect_button = browser.find_element(By.CSS_SELECTOR,
        "div.el-rate > span:nth-child(5) > i")
    if collect_button.get_attribute("style") == "color: rgb(153, 154, 170);":
        #collect_button.click()
        #webdriver.ActionChains(browser).move_to_element(collect_button).click(collect_button).perform()
        browser.execute_script("arguments[0].click();", collect_button)
        return 1
    else:
        return 2

see also


目录
相关文章
|
8天前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
|
1月前
|
Shell Python
使用 pyenv 来管理多个 Python 版本(2)
使用 pyenv 来管理多个 Python 版本(2)
120 71
使用 pyenv 来管理多个 Python 版本(2)
|
5天前
|
SQL 分布式计算 数据处理
云产品评测|分布式Python计算服务MaxFrame | 在本地环境中使用MaxFrame + 基于MaxFrame实现大语言模型数据处理
本文基于官方文档,介绍了由浅入深的两个部分实操测试,包括在本地环境中使用MaxFrame & 基于MaxFrame实现大语言模型数据处理,对步骤有详细说明。体验下来对MaxCompute的感受是很不错的,值得尝试并使用!
29 1
|
12天前
|
Shell 程序员 开发者
轻松搞定在Python中构建虚拟环境
本教程教你如何使用业界公认的最佳实践,创建一个完全工作的Python开发环境。虚拟环境通过隔离依赖项,避免项目间的冲突,并允许你轻松管理包版本。我们将使用Python 3的内置`venv`模块来创建和激活虚拟环境,确保不同项目能独立运行,不会相互干扰。此外,还将介绍如何检查Python版本、激活和停用虚拟环境,以及使用`requirements.txt`文件共享依赖项。 通过本教程,你将学会: - 创建和管理虚拟环境 - 避免依赖性冲突 - 部署Python应用到服务器 适合新手和希望提升开发环境管理能力的开发者。
|
19天前
|
Python
探索Python虚拟环境:virtualenv、venv与pipenv比较
在Python开发中,有效的环境管理至关重要。virtualenv、venv和pipenv是常用的虚拟环境管理工具。virtualenv支持Python 2.7+和3.3+,可创建独立环境;venv为Python 3.3+内置库,简单轻量但功能有限;pipenv则结合了包管理和虚拟环境管理,生成Pipfile.lock确保依赖确定性和安全性,推荐作为首选工具。
|
18天前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
23天前
|
机器学习/深度学习 Rust 算法
Python环境管理的新选择:UV和Pixi,高性能Python环境管理方案
近期Python生态系统在包管理领域发生了重要变化,Anaconda调整商业许可证政策,促使社区寻找更开放的解决方案。本文介绍两款新一代Python包管理工具:UV和Pixi。UV用Rust编写,提供高性能依赖解析和项目级环境管理;Pixi基于Conda生态系统,支持conda-forge和PyPI包管理。两者分别适用于高性能需求和深度学习项目,为开发者提供了更多选择。
88 2
|
1月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
73 8
|
1月前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
51 4
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!

热门文章

最新文章