最近在玩短视频,发现起号需要一些数据,比如粉丝数量,交互热度等。而这些是可以通过主动点赞关注他人稳步实现的。比如你关注两个,大概率其中一个会回关。每天给你的朋友点赞,大概率他也会回赞。这里忍不住想到了用selenium来自动完成这些机械而重复的操作。本文将介绍在notebook里实现用selenium自动登陆某瓜网站,并自动关注200人。不确定文章是否能过审,先点到为止,后面看情况补充。
为什么要用notebook?一开始我直接写python调试,发现每次有异常浏览器就退出,不利于根据页面内容调试(比如寻找关键标志符)。再打开也比较慢,而且需要重新登陆,容易被服务器识别为恶意。notebook有个好处,浏览器打开着,网页内容稳定,可以尝试各种selenium操作,失败了也不用从头再来,大大提高了效率。
开发完成后的效果演示
selenium自动关注别人的粉丝
视频中核心源代码贴在文末
准备python环境
安装jupyter和selenium
pip install jupyter
pip install selenium
在venv中安装了一些包来提升开发效率的,本文不介绍。放在这里是为了方便大家运行源码。
Pillow
Screenshot
retrying
启动notebook
source .venv/bin/activate
jupyter notebook
Selenium打开西瓜主页
TBD
Chrome浏览器内寻找关键抓手
TBD
登陆
TBD
打开名人作为数据源
TBD
点击关注
TBD
循环200次
TBD
特殊情况处理
TBD
核心源代码
import time
from retrying import retry
from selenium.common.exceptions import TimeoutException
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from common_util import try_find_class, scroll_down, get_logger, login, resize_window, driver, \
search_user, get_n
@retry(wait_exponential_multiplier=100000, wait_exponential_max=36000000)
def click_follow_button(li_element, b):
actions = ActionChains(driver)
actions