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


目录
相关文章
|
7月前
|
机器人 数据安全/隐私保护 Python
企业微信自动回复软件,企业微信自动回复机器人,python框架分享
企业微信机器人包含完整的消息处理流程,支持文本消息自动回复、事件处理、消息加密解密等功能
|
5月前
|
应用服务中间件 Nacos nginx
黑马头条_SpringCloud项目阶段一:环境搭建(Mac版本)
本文为 Mac 用户介绍微服务项目环境搭建,含阿里云服务器用 Docker 装 Nacos 1.2.0,本地通过 brew 装 OpenJDK 8、Maven 3.6.1、Redis,Docker 部署 MySQL 5.7 并配字符集,及 Nginx 安装与反向代理设置,附命令与配置步骤。
354 4
黑马头条_SpringCloud项目阶段一:环境搭建(Mac版本)
|
9月前
|
数据采集 Web App开发 JavaScript
基于Selenium的Python爬虫抓取动态App图片
基于Selenium的Python爬虫抓取动态App图片
689 68
|
7月前
|
JSON 机器人 API
微信机器人自动回复插件,vx自动回复机器人脚本助手,python框架分享
这个微信机器人系统包含三个主要模块:主程序基于itchat实现微信消息监听和自动回复功能
|
9月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
642 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
9月前
|
Python
在VScode环境下配置Python环境的方法
经过上述步骤,你的VSCode环境就已经配置好了。请尽情享受这扇你为自己开启的知识之窗。如同你在冒险世界中前行,你的探索之路只有越走越广,你获得的知识只会越来越丰富,你的能力只会越来越强。
888 37
|
7月前
|
机器人 API 数据安全/隐私保护
QQ机器人插件源码,自动回复聊天机器人,python源码分享
消息接收处理:通过Flask搭建HTTP服务接收go-cqhttp推送的QQ消息47 智能回复逻辑
|
7月前
|
JSON 机器人 数据安全/隐私保护
微信自动聊天机器人, 微信自动回复机器人,python框架分享
这个微信机器人实现包含主程序、配置文件、工具函数和测试脚本四个模块。主程序使用itchat库
|
Shell Linux Ruby
Python3虚拟环境venv
`venv` 是 Python 的虚拟环境工具,用于为不同项目创建独立的运行环境,避免依赖冲突。通过 `python3 -m venv` 命令创建虚拟环境,并使用 `source bin/activate` 激活。激活后,所有 Python 包将安装在该环境中,不影响系统全局环境。退出环境使用 `deactivate` 命令。每个虚拟环境拥有独立的包集合,确保项目间的隔离性。删除虚拟环境只需删除其目录即可。
1314 34
|
11月前
|
Java API Docker
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
以上内容是一个简单的实现在Java后端中通过DockerClient操作Docker生成python环境并执行代码,最后销毁的案例全过程,也是实现一个简单的在线编程后端API的完整流程,你可以在此基础上添加额外的辅助功能,比如上传文件、编辑文件、查阅文件、自定义安装等功能。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境

推荐镜像

更多