用于rendez-vous约会python_selenium_chrome脚本-泓源视野

用于rendez-vous约会python_selenium_chrome脚本

  1. from selenium import webdriver
  2. import time
  3. import smtplib
  4. from email.header import Header
  5. from email.mime.text import MIMEText
  6. driver = webdriver.Chrome('C:\Python\Tools\chromedriver.exe')
  7. #driver.fullscreen_window()
  8. driver.get('http://www.meurthe-et-moselle.gouv.fr/booking/create/22259/1')
  9. driver.implicitly_wait(4)
  10. driver.find_element_by_id("planning22263").click()
  11. #driver.find_element_by_xpath("//*[@id='condition_Booking']//input[@type='checkbox']").click()
  12. time.sleep(5)
  13. driver.find_element_by_xpath("//*[@name='nextButton']").click()
  14. time.sleep(7)
  15. #if driver.current_window_handle ("//*[@h2='Vérification de disponibilité']")driver.refresh()
  16. #else
  17. text = driver.find_element_by_id("inner_Booking").text
  18. print(text)
  19. attribute = driver.find_element_by_id("dialog_Booking").get_attribute('type')
  20. print(attribute)
  21. result = driver.find_element_by_id("dialog_Booking").is_displayed()
  22. print(result)
  23. #def send_email(text,result): #函数中邮箱信息改为自己的
  24. # 第三方 SMTP 服务
  25. mail_host="smtp.gmail.com" #设置服务器
  26. mail_user="****.fr@gmail.com" #用户名
  27. mail_pass="****" #口令
  28. mail_use_STARTTLS = True #使用ssl
  29. sender = '****@hotmail.com'
  30. receivers = ['****@gmail.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
  31. message = MIMEText(text, 'plain', 'utf-8')
  32. message['From'] = Header("rdv_prfecture", 'utf-8')
  33. message['To'] = Header("测试", 'utf-8')
  34. subject = 'Python SMTP 邮件测试'
  35. message['Subject'] = Header(subject, 'utf-8')
  36. text = ("disponile:%s dialog:%s "%(text,result))
  37. try: server = smtplib.SMTP(mail_host,587) server.starttls() # server.connect(mail_host, 587) # 25 为 SMTP 端口号 server.login(mail_user,mail_pass) server.sendmail(sender, receivers, message.as_string()) print ("邮件发送成功")
  38. except smtplib.SMTPException: print ("Error: 无法发送邮件")
  39. time.sleep(10)
  40. #return driver
  41. driver.quit()

注解这是一个windwos环境python3的脚本,关于linux还得做修改,python的selenium模块操作网页自动化,***需要安装驱动webdriver,使用chrome浏览器的话需要安装chrome_webdriver版本要和当前chrome版本对应 83.0.4103.116,chrome_webdriver下载地址为

https://chromedriver.chromium.org/

功能介绍,自动选择预约项目,然后点击获取预约,如果不是disponible的话则发邮件通知non-disponible。添加计划任务到服务器中1小时运行一次!

  1. from selenium import webdriver
  2. import time
  3. import smtplib
  4. from email.header import Header
  5. from email.mime.text import MIMEText
  6. driver = webdriver.Firefox()
  7. driver.get("http://www.meurthe-et-moselle.gouv.fr");
  8. cookie = driver.get_cookies()
  9. time.sleep(5)
  10. #driver.manage().deleteAllCookies();
  11. #driver.findElement(By.xpath("//ul[@id='productListMain']/li[1]/span/a")).click();
  12. #driver.fullscreen_window()
  13. driver.get('http://www.meurthe-et-moselle.gouv.fr/booking/create/22259/1')
  14. driver.implicitly_wait(4)
  15. driver.find_element_by_id("planning22263").click()
  16. #driver.find_element_by_xpath("//*[@id='condition_Booking']//input[@type='checkbox']").click()
  17. time.sleep(5)
  18. driver.find_element_by_xpath("//*[@name='nextButton']").click()
  19. time.sleep(7)
  20. #if driver.current_window_handle ("//*[@h2='Vérification de disponibilité']")driver.refresh()
  21. #else
  22. text = driver.find_element_by_id("inner_Booking").text
  23. print(text)
  24. attribute = driver.find_element_by_id("dialog_Booking").get_attribute('type')
  25. print(attribute)
  26. result = driver.find_element_by_id("dialog_Booking").is_displayed()
  27. print(result)
  28. #def send_email(text,result): #函数中邮箱信息改为自己的
  29. # 第三方 SMTP 服务
  30. mail_host="smtp.gmail.com" #设置服务器
  31. mail_user="***.fr@gmail.com" #用户名
  32. mail_pass="***" #口令
  33. mail_use_STARTTLS = True #使用ssl
  34. sender = 'lvwuwei@hotmail.com'
  35. receivers = ['***@gmail.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
  36. message = MIMEText(text, 'plain', 'utf-8')
  37. message['From'] = Header("rdv_prfecture", 'utf-8')
  38. message['To'] = Header("测试", 'utf-8')
  39. subject = 'Python SMTP 邮件测试'
  40. message['Subject'] = Header(subject, 'utf-8')
  41. text = ("disponile:%s dialog:%s "%(text,result))
  42. try: server = smtplib.SMTP(mail_host,587) server.starttls() # server.connect(mail_host, 587) # 25 为 SMTP 端口号 server.login(mail_user,mail_pass) server.sendmail(sender, receivers, message.as_string()) print ("邮件发送成功")
  43. except smtplib.SMTPException: print ("Error: 无法发送邮件")
  44. time.sleep(10)
  45. #return driver
  46. driver.quit()

linux 环境需要:python3、pip3、 需要安装pip3 install selenium、需要下载Firefox的webdriver驱动,挂到服务器中使用crontab执行sh auto.sh

***前提使用的gmail smtp的话需要

1.smtp端口号不是默认的25,smtp的是587
2.必须设置“允许使用不够安全的应用
最好再此服务器登录gmail账号一遍 通过 二次验证后 允许异地ip登录

cookie问题解决:***目标网址需要手动访问一次 否则非法操作被apache列为ip黑名单

用于rendez-vous约会python_selenium_chrome脚本插图
本文由 泓源视野 作者:admin 发表,其版权均为 泓源视野 所有,文章内容系作者个人观点,不代表 泓源视野 对观点赞同或支持。如需转载,请注明文章来源。
34

发表评论

Protected with IP Blacklist CloudIP Blacklist Cloud
您是第8233969 位访客, 您的IP是:[3.12.84.239]