下载地址:https://www.pan38.com/dow/share.php?code=JCnzE 提取密码:1198
这个代码示例展示了如何使用Selenium进行微博登录和评论点赞的基本操作。实际应用中需要处理验证码、动态加载、反爬机制等问题。建议仅用于学习自动化测试技术,不要用于实际社交平台操作。
import time
import random
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException, TimeoutException
class SocialMediaBot:
def __init__(self, username, password):
self.username = username
self.password = password
self.driver = None
self.setup_driver()
def setup_driver(self):
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-notifications")
chrome_options.add_argument("--disable-infobars")
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-popup-blocking")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--no-sandbox")
service = Service(executable_path='chromedriver.exe')
self.driver = webdriver.Chrome(service=service, options=chrome_options)
self.driver.maximize_window()
def login_weibo(self):
self.driver.get("https://weibo.com/login.php")
time.sleep(3)
try:
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(5)
return True
except Exception as e:
print(f"登录失败: {str(e)}")
return False
def like_weibo_comments(self, post_url, max_likes=10):
self.driver.get(post_url)
time.sleep(5)
try:
comments_section = WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, ".comment_list"))
)
like_buttons = comments_section.find_elements(By.CSS_SELECTOR, ".like_btn")
liked = 0
for btn in like_buttons[:max_likes]:
try:
btn.click()
time.sleep(random.uniform(1, 3))
liked += 1
except Exception:
continue
print(f"成功点赞 {liked} 条评论")
return liked
except Exception as e:
print(f"点赞评论失败: {str(e)}")
return 0
def close(self):
if self.driver:
self.driver.quit()
if __name__ == "__main__":
bot = SocialMediaBot("your_username", "your_password")
try:
if bot.login_weibo():
bot.like_weibo_comments("https://weibo.com/123456789/xxxxxx")
finally:
bot.close()
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。