下载地址:www.pan38.com/dow/share.p… 提取密码:7167
这段代码模拟了人类观看视频的行为模式,包括随机滚动、点赞、评论等交互操作。代码使用了Selenium进行浏览器自动化,并加入了随机延迟和人类行为模拟。请注意实际使用时需要根据目标网站的具体HTML结构进行调整
import time import random import pyautogui from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException, NoSuchElementException
class VideoAutoPlayer: def init(self, platform_url, username=None, password=None): self.platform_url = platform_url self.username = username self.password = password self.driver = None self.setup_driver()
def setup_driver(self):
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
options.add_argument("--disable-infobars")
options.add_argument("--disable-extensions")
options.add_argument("--disable-notifications")
self.driver = webdriver.Chrome(options=options)
def login(self):
try:
self.driver.get(self.platform_url)
time.sleep(random.uniform(2, 5))
if self.username and self.password:
login_button = WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//button[contains(text(),'登录')]"))
)
login_button.click()
username_field = WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.NAME, "username"))
)
username_field.send_keys(self.username)
password_field = self.driver.find_element(By.NAME, "password")
password_field.send_keys(self.password)
password_field.send_keys(Keys.RETURN)
time.sleep(random.uniform(3, 7))
except Exception as e:
print(f"登录过程中出现错误: {str(e)}")
def watch_video(self, duration=30):
try:
# 模拟观看行为
print("开始观看视频...")
time.sleep(duration)
# 随机滚动页面
scroll_amount = random.randint(200, 800)
self.driver.execute_script(f"window.scrollBy(0, {scroll_amount})")
time.sleep(random.uniform(1, 3))
# 随机点赞或评论
if random.random() > 0.7:
like_button = self.driver.find_element(By.XPATH, "//button[contains(@aria-label,'点赞')]")
like_button.click()
time.sleep(random.uniform(1, 2))
if random.random() > 0.9:
comment_box = self.driver.find_element(By.XPATH, "//textarea[contains(@placeholder,'添加评论')]")
comment_box.send_keys("好视频!")
comment_box.send_keys(Keys.RETURN)
time.sleep(random.uniform(2, 4))
except NoSuchElementException:
print("未找到视频交互元素,继续观看...")
except Exception as e:
print(f"观看视频时出现错误: {str(e)}")
def navigate_to_next_video(self):
try:
# 模拟点击下一个视频
next_button = WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//button[contains(@aria-label,'下一个')]"))
)
next_button.click()
time.sleep(random.uniform(3, 7))
return True
except Exception as e:
print(f"导航到下一个视频时出错: {str(e)}")
return False
def run(self, watch_time_minutes=60):
try:
self.login()
start_time = time.time()
while (time.time() - start_time) < watch_time_minutes * 60:
self.watch_video(duration=random.randint(20, 120))
if not self.navigate_to_next_video():
# 如果无法找到下一个按钮,刷新页面
self.driver.refresh()
time.sleep(random.uniform(5, 10))
# 随机休息
if random.random() > 0.9:
rest_time = random.uniform(10, 30)
print(f"随机休息 {rest_time:.1f} 秒...")
time.sleep(rest_time)
finally:
self.driver.quit()
if name == "main": # 配置参数 PLATFORM_URL = "example-video-platform.com" USERNAME = "your_username" PASSWORD = "your_password" WATCH_TIME_MINUTES = 120 # 运行时长(分钟)
player = VideoAutoPlayer(PLATFORM_URL, USERNAME, PASSWORD)
player.run(WATCH_TIME_MINUTES)