当前位置:   article > 正文

讯飞AI写作与python及selenium结合,自动化处理的编写笔记,这是我思考和整理了接近一周才完成的,可能我太笨了。

讯飞AI写作与python及selenium结合,自动化处理的编写笔记,这是我思考和整理了接近一周才完成的,可能我太笨了。

起因:当ai写作刚开始的时候,我头脑发热,花钱买了一年的。结果发现用手工的方式是不可能用完量的。用模拟操作倒是可以,本着钱不能乱花的原则,我开始想,如何也让python和selenium来完成这项工作。

这个系统和其他的Ai不太一样,一方面他支持问答式,也支持从中间,选中后调出Ai对话框完成问答。

我使用的是第二种方式:比如,我先输入100个问题(段),然后选中每一段,调出Ai对话框,让他回答问题。

其实第一种,我也有测试,但他自动把上下文给联在一起了,超出多少后会出问题。可能是用在其他方面的吧。等以后再看有什么好的用途。

我的目的就是把这120万每月全部用完。不浪费。(注释掉的代码忽略)

  1. import tkinter as tk
  2. from selenium.webdriver.common.action_chains import ActionChains
  3. from selenium import webdriver
  4. from selenium.webdriver.edge.options import Options
  5. import time
  6. from selenium.common.exceptions import TimeoutException
  7. from selenium.webdriver.common.by import By
  8. from selenium.webdriver.support.ui import WebDriverWait
  9. from selenium.webdriver.support import expected_conditions as EC

0.创建图形界面

  1. def main():
  2. window = tk.Tk()
  3. window.title("xunfei")
  4. window.geometry("500x300")
  5. url="https://huixie.iflyrec.com/list"
  6. # 创建按钮
  7. button_open = tk.Button(window, text="准备浏览器环境", command=lambda: open_edge_browser(url))
  8. button_open.pack()
  9. # 创建按钮
  10. button_get_answers = tk.Button(window, text="开始工作", command=lambda: autocomplete_tasks())
  11. button_get_answers.pack()
  12. window.mainloop()
  13. if __name__ == "__main__":
  14. main()

 

1.登录(自动)测试通过

打开浏览器,

  1. def js_condition(driver):
  2. """自定义等待条件函数,检查JavaScript返回值"""
  3. return driver.execute_script("return document.readyState") == "complete"
  4. def open_edge_browser(url):
  5. global driver
  6. # driver.implicitly_wait(10) # 设置全局隐式等待时间为10
  7. # 设置Edge选项
  8. edge_options = Options()
  9. edge_options.use_chromium = True
  10. # 向Edge浏览器传递启动参数
  11. edge_options.add_argument('--disable-extensions') # 禁用浏览器扩展
  12. edge_options.add_argument('--disable-gpu') # 禁用GPU硬件加速
  13. driver = webdriver.Edge(options=edge_options)
  14. driver.implicitly_wait(40) # 设置全局隐式等待时间为40
  15. driver.maximize_window()
  16. try:
  17. driver.get(url)
  18. WebDriverWait(driver, 20).until(js_condition)
  19. print("网页已加载完成。")
  20. return driver
  21. except TimeoutException:
  22. print("加载超时,请检查网络连接或网页是否正常。")

输入帐号密码等

  1. def is_login(driver):
  2. # 点击登录按钮
  3. locator = (By.CSS_SELECTOR, 'div.btn-login-register')
  4. try:
  5. # 等待直到元素出现,并且是可点击的
  6. button = WebDriverWait(driver, 30).until(
  7. EC.element_to_be_clickable(locator)
  8. )
  9. # 点击元素
  10. button.click()
  11. except TimeoutException:
  12. print("在指定的时间内登录没有出现")
  13. # 定位帐号
  14. locator = (By.CSS_SELECTOR, 'input[placeholder="手机号"]')
  15. try:
  16. # 等待直到元素出现,并且是可编辑的
  17. input_element = WebDriverWait(driver, 10).until(
  18. EC.element_to_be_clickable(locator)
  19. )
  20. # 清除输入框内容
  21. input_element.clear()
  22. # 向输入框发送键值
  23. input_element.send_keys("188888888")
  24. except TimeoutException:
  25. print("在指定的时间内用户名没有出现或不可编辑")
  26. # 定位密码输入框
  27. locator = (By.CSS_SELECTOR, 'input[placeholder="密码"]')
  28. try:
  29. # 等待直到元素出现,并且是可编辑的
  30. input_element = WebDriverWait(driver, 10).until(
  31. EC.element_to_be_clickable(locator)
  32. )
  33. # 清除输入框内容
  34. input_element.clear()
  35. # 向输入框发送键值
  36. input_element.send_keys("11111111111")
  37. except TimeoutException:
  38. print("在指定的时间内用户名没有出现或不可编辑")
  39. #定位登录按钮
  40. locator = (By.CSS_SELECTOR, 'div.login-btn')
  41. # 使用WebDriverWait等待元素出现
  42. try:
  43. # 等待直到元素出现,并且是可点击的
  44. button = WebDriverWait(driver, 10).until(
  45. EC.element_to_be_clickable(locator)
  46. )
  47. # 点击元素
  48. button.click()
  49. except TimeoutException:
  50. print("在指定的时间内登录没有出现")
  51. print("登录成功")
  52. def autocomplete_tasks():
  53. is_login(driver)

 

 

2.进入工作界面

手动部分:

我输入的100个问题,打印让他帮我自动回答的。你随意。

注意:工作的页面我设定的所有标签页中的最后一个。

获取最后一个 标签页

参考代码:

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.chrome.service import Service
  4. from selenium.webdriver.chrome.options import Options
  5. from selenium.webdriver.support.ui import WebDriverWait
  6. from selenium.webdriver.support import expected_conditions as EC
  7. # 初始化Chrome浏览器
  8. chrome_options = Options()
  9. service = Service(executable_path='path/to/chromedriver') # 替换为你的chromedriver路径
  10. driver = webdriver.Chrome(service=service, options=chrome_options)
  11. try:
  12. # 打开一个网页,以便之后有多个标签页进行演示
  13. driver.get("https://www.example.com")
  14. # 假设在此之后通过某些操作打开了新的标签页,例如点击链接等
  15. # 获取所有窗口句柄
  16. window_handles = driver.window_handles
  17. # 遍历窗口句柄,定位到最后一个打开的标签页
  18. for handle in window_handles:
  19. driver.switch_to.window(handle) # 切换到当前循环的窗口
  20. # 此时已经位于最后一个标签页,可以执行相应操作
  21. print("当前页面的URL是:", driver.current_
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/586146
推荐阅读
相关标签
  

闽ICP备14008679号