资讯专栏INFORMATION COLUMN

selenium+chrome headless完成自动百度八斗平台的录入问题(python版本为2

zhonghanwen / 2772人阅读

摘要:对应的的放置目录打开开始登录输入框你的账号你的密码登录确认睡眠秒截图验证码写上你自己的图片地址请输入看到的验证码截图查看步骤写上你自己的图片地址输入任意值继续登录之后跳转跳转开始动态令牌请输入动态

</>复制代码

  1. # -*- coding: utf-8 -*-
  2. import sys
  3. reload(sys)
  4. sys.setdefaultencoding("utf-8")
  5. import os
  6. from selenium import webdriver
  7. from selenium.webdriver.common.keys import Keys
  8. from selenium.webdriver.chrome.options import Options
  9. import time
  10. chrome_options = Options()
  11. chrome_options.add_argument("--headless")
  12. chrome_options.add_argument("--disable-gpu")
  13. chrome_options.add_argument("window-size=1024,768")
  14. chrome_options.add_argument("--no-sandbox")
  15. base_url = "http://badou.baidu.com/login"
  16. #对应的chromedriver的放置目录
  17. driver = webdriver.Chrome(executable_path=("/usr/local/nginx/html/selenium/chromedriver"), chrome_options=chrome_options)
  18. #打开url
  19. driver.get(base_url + "/")
  20. #开始
  21. start_time=time.time()
  22. print("this is start_time ",start_time)
  23. #登录 输入框
  24. userinput_js = "var userName_node = document.getElementsByName("userName")[0];var password_node = document.getElementsByName("password")[0];userName_node.value = "你的账号";password_node.value = "你的密码";"
  25. print(userinput_js)
  26. driver.execute_script(userinput_js)
  27. #登录 确认
  28. login_js = "document.getElementsByTagName("input")[18].click();"
  29. print(login_js)
  30. driver.execute_script(login_js)
  31. #睡眠3秒 截图
  32. time.sleep(3)
  33. driver.save_screenshot("screen.png")
  34. #验证码
  35. print("写上你自己的图片地址url")
  36. imgcode = raw_input("请输入看到的验证码:")
  37. verify_input_js = "var verify_node = document.getElementsByName("verifyCode")[0];verify_node.value=""+imgcode+"""
  38. driver.execute_script(verify_input_js)
  39. #截图 查看步骤
  40. driver.save_screenshot("screen.png")
  41. print("写上你自己的图片地址url")
  42. tmp=raw_input("输入任意值继续.")
  43. #登录之后跳转
  44. print("跳转开始...")
  45. jump_js = "var pass_btn = document.getElementsByClassName("pass-button pass-button-submit")[0];pass_btn.click();"
  46. driver.execute_script(jump_js)
  47. time.sleep(3)
  48. close_js = "document.getElementsByClassName("el-dialog__close el-icon el-icon-close")[0].click()"
  49. driver.execute_script(close_js)
  50. driver.save_screenshot("screen.png")
  51. #动态令牌
  52. verify = raw_input("请输入动态令牌:")
  53. verify_js = "var verify_node = document.getElementsByClassName("forceverify-input forceverify-input-vcode")[1];verify_node.value=""+verify+"""
  54. driver.execute_script(verify_js)
  55. #最终登录
  56. jump_js = "document.getElementsByClassName("forceverify-button forceverify-button-submit")[4].click();"
  57. driver.execute_script(jump_js)
  58. time.sleep(3)
  59. driver.save_screenshot("screen.png")
  60. #录入 问题
  61. with open("./badou.txt","r") as f:
  62. line = f.readline()
  63. title = line
  64. title = title.strip()
  65. commit_js = "var object2str = function(obj){var str_arr = [];var i = 0;for(var key in obj){str_arr[i] = key+"="+obj[key]; i++;}return str_arr.join("&");};var ajax_post = function (url, data, fn) {var xhr = new XMLHttpRequest();xhr.open("POST", url, true);xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function()"+" {"+"if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {fn.call(this, xhr.responseText);}"+"};console.log(object2str(data));xhr.send(object2str(data));};var post_url = "http://badou.baidu.com/api/question/insertUpdate";var data = {"class_id":16,"content":"","cover":"[]",ext:{"+"},"qr_type":6,"title":""+title+""};ajax_post(post_url,data,function(res){var string = JSON.stringify(res);var data1 = {"msg" : "问题标题:"+data.title+"返回结果:"+string};var url = "http://ad.adstart.cn/log_in.php";ajax_post(url,data1,function(res1){console.log(res1);})});document.getElementsByTagName("a")[2].click();"
  66. # driver.execute_script(commit_js)
  67. print(commit_js)
  68. time.sleep(10)
  69. f.close()
  70. #关闭driver
  71. driver.close()
  72. #结束
  73. end_time=time.time()
  74. print("this is end_time ",end_time)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43815.html

相关文章

  • selenium+chrome headless完成自动百度八斗平台录入问题python版本2

    摘要:对应的的放置目录打开开始登录输入框你的账号你的密码登录确认睡眠秒截图验证码写上你自己的图片地址请输入看到的验证码截图查看步骤写上你自己的图片地址输入任意值继续登录之后跳转跳转开始动态令牌请输入动态 # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding(utf-8) import os from ...

    Eminjannn 评论0 收藏0
  • selenium+chrome headless完成自动百度八斗平台录入问题python版本2

    摘要:对应的的放置目录打开开始登录输入框你的账号你的密码登录确认睡眠秒截图验证码写上你自己的图片地址请输入看到的验证码截图查看步骤写上你自己的图片地址输入任意值继续登录之后跳转跳转开始动态令牌请输入动态 # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding(utf-8) import os from ...

    galois 评论0 收藏0
  • headless模式下运行selenium

    摘要:而在不久前宣布支持模式而后跟随的新闻再次勾起我无尽的回忆。那么我们就来谈谈在和浏览器不原生支持模式下如何使用来实现模式进行动态数据的抓取。比较常见的例子在中进行转发。下面我们进行测试发现其可以正常的运行。 原文地址: http://52sox.com/python-use-h... 在Python中进行浏览器测试时,一般我们会选择selenium这样的库来简化我们工作量。而有些时候,为...

    MoAir 评论0 收藏0
  • Google推出爬虫新神器:Pyppeteer,神挡杀神,佛挡杀佛!

    摘要:注意,是叫做,不是。两款浏览器同根同源,它们有着同样的,但配色不同,由蓝红绿黄四种颜色组成,而由不同深度的蓝色构成。另外是基于的新特性实现的,所以它的一些执行也支持异步操作,效率相对于来说也提高了。是否响应信号,一般是命令,默认是。 如果大家对 Python 爬虫有所了解的话,想必你应该听说过 Selenium 这个库,这实际上是一个自动化测试工具,现在已经被广泛用于网络爬虫中来应对 ...

    Fundebug 评论0 收藏0
  • 使用浏览器HEADLESS模式进行自动化测试

    摘要:了解模式指的是不需要用户界面的浏览器,这种浏览器在自动化测试和爬虫领域有着广泛的应用。实践使用浏览器的模式进行自动化测试,你需要先满足以下前提运行环境或者或者最新版已加入万事俱备,废话不多说我们直接上演示代码。 了解HEADLESS模式 HEADLESS BROWSER 指的是不需要用户界面的浏览器,这种浏览器在自动化测试和爬虫领域有着广泛的应用。 例如你想在网页上运行一些测试,从网页...

    lanffy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<