使用selenium 对在csdn自动评论代码实现

通过此脚本可实现自动评论功能。

import time

from selenium import webdriver
from time import sleep
import os
from selenium.webdriver.chrome.options import Options


def function():
    options = Options()
    # cache_dir = os.path.join(os.path.dirname(__file__),"disk-cache")
    # options.add_argument("--disable-cache")
    # options.add_argument(f"--disk-cache-dir={cache_dir}")
    # options.add_argument(f"user-data-dir={cache_dir}")
    options.page_load_strategy = 'none'
    driver = webdriver.Chrome(options)
    driver.maximize_window()
    driver.implicitly_wait(10)
    driver.get('https://passport.csdn.net/login')
    # time.sleep(1)
    driver.find_element('xpath', '/html/body/div[2]/div/div[2]/div[2]/div[2]/div/div[1]/span[4]').click()
    # driver.find_element('xpath','//span[@class="tabs-active"]').click()
	# 输入账户
    driver.find_element('xpath', '//input[@autocomplete="username"]').send_keys("xxx")
    # 输入密码
    driver.find_element('xpath', '//input[@autocomplete="current-password"]').send_keys("xxxx")
    driver.find_element('xpath', '/html/body/div[2]/div/div[2]/div[2]/div[2]/div/div[2]/p/div/i').click()
    driver.find_element('xpath', '//button[text()="登录"]').click()
    # time.sleep(1)
    driver.find_element('xpath', '//li[@title="阅读深度、前沿文章"]').click()
    driver.find_element('xpath', '//div[@class="blog-nav-box"]/ul/li[6]').click()

    for i in range(1, 40):
        eles = driver.find_element('xpath', '//div[@class="content"]/a')
        text = eles.text
        print(text)
        eles.click()
        windows_handls = driver.window_handles
        print(windows_handls)
        # time.sleep(1)
        driver.switch_to.window(windows_handls[1])
        driver.find_element('xpath',
                            '//div[@class="toolbox-middle"]/ul/li[@class="tool-item tool-item-size tool-active tool-item-comment"]').click()
        time.sleep(1)

        try:
            driver.find_element('xpath', '//textarea[@name="comment_content"]').send_keys(
                f"这篇关于{text}的文章写的太好了,完全是我想要学习的,大佬的文章让我对这领域的技术问题有了更深入的了解,尤其是大佬提到的那些“坑点”,我相信能够在实际应用中避免或解决很多问题。谢谢大佬的分享,期待大佬的更多精彩文章,让我们共同学习、进步")
            # driver.find_element('xpath', '//textarea[@name="comment_content"]').send_keys(
            # "非常喜欢这篇博客!博主的写作风格简洁明了,让人一目了然。文章内容丰富,涵盖了很多实用的知识点,对我来说非常有帮助。尤其是博主在文章中提供了很多实际操作的步骤和技巧,让我能够更好地应用所学的知识。同时,博主的配图也很精美,更加生动地展示了文章中的内容。总之,非常感谢博主的分享,期待博主能够继续输出这样优质的好文。")
            driver.find_element('xpath', '//input[@class="btn-comment btn-comment-input"]').click()
            time.sleep(30)
        except Exception as e:
            print("Exception" + str(e))


        # time.sleep(1)
        driver.close()
        driver.switch_to.window(windows_handls[0])
        # time.sleep(1)
        driver.refresh()
    driver.quit()


if __name__ == '__main__':
       function()

#
# if os.path.exists(cache_dir):
#     os.remove(cache_dir)
  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
以下为csdn自动selenium代码,可以自动登录、发表文章、修改文章和删除文章: ```python from selenium import webdriver 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.webdriver.common.by import By # 初始化浏览器驱动 driver = webdriver.Chrome() # 登录 driver.get("https://passport.csdn.net/login?code=public") username = driver.find_element_by_name("username") password = driver.find_element_by_name("password") username.send_keys("your_username") password.send_keys("your_password") driver.find_element_by_class_name("logging").click() # 发表文章 driver.get("https://mp.csdn.net/console/article") WebDriverWait(driver, 10).until(ec.presence_of_element_located((By.CLASS_NAME, "btn-write"))).click() title = driver.find_element_by_name("title") content = driver.find_element_by_name("markdowncontent") title.send_keys("your_article_title") content.send_keys("your_article_content") driver.find_element_by_class_name("btn-publish").click() # 修改文章 driver.get("https://mp.csdn.net/console/article") driver.find_element_by_class_name("title").click() driver.find_element_by_class_name("edit-article").click() title.clear() content.clear() title.send_keys("your_new_article_title") content.send_keys("your_new_article_content") driver.find_element_by_class_name("btn-publish").click() # 删除文章 driver.get("https://mp.csdn.net/console/article") driver.find_element_by_class_name("title").click() driver.find_element_by_class_name("delete-article").click() driver.switch_to.alert.accept() # 关闭浏览器 driver.close() ``` 需要注意的是,这里的用户名和密码需要替换为自己的csdn账号密码。另外,由于csdn页面可能会有反爬机制,建议添加一些等待和判断元素是否加载完成的代码,以提高脚本的稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个双鱼座的测开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值