利用Selenium 登录京东,抢购19.9的荣耀手环3

2024-03-24 00:38

本文主要是介绍利用Selenium 登录京东,抢购19.9的荣耀手环3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、首先,19.9元抢购是京东吸引顾客的,最后反正强盗也是上百块,坑爹

二、利用Selenium做抢购的话能看到物品,用post请求就需要解析页面,获取参数信息,再模拟登录,但是自己就不能实时了解物品详情吧,所以我选择了第一种,第二种也不难,F12可以知道需要哪些参数,直接解析就可以

三、说说验证码吧,个人觉得简单点做,要么手动看着网页输入,要么解析出验证码路径,请求并保存图片在本地,然后自动打开图片,再手动输入。难点做就是提取图片的像素点,进行排序,然后自动帮你输入验证码,只要最后目的能抢到东西的方法就是好方法

四、有图有真相

    

五、该上代码了

    

# coding=utf-8
"""
@author:SoS
@data:2018/4/3
@version:Python3.6
"""
import requests
from datetime import datetime
import time
from PIL import Image
from selenium import webdriverclass jd():def __init__(self):self.driver = webdriver.Firefox()def request_jd(self):user_name = input("请输入用户名\n")pwd = input("请输入密码\n")self.driver.maximize_window()self.driver.get("https://www.jd.com/")time.sleep(1)self.driver.find_element_by_class_name("link-login").click()time.sleep(1)self.driver.find_element_by_link_text("账户登录").click()self.jd_cookies = self.driver.get_cookies()self.driver.find_element_by_id("loginname").send_keys(user_name)self.driver.find_element_by_id("nloginpwd").send_keys(pwd)try:self.driver.find_element_by_css_selector(".btn-img.btn-entry").click()time.sleep(0.5)print("需要输入验证码")# 可能有验证码captcha = self.request_capture()print("验证码",captcha)time.sleep(0.5)self.driver.find_element_by_id("authcode").send_keys(captcha)time.sleep(0.5)self.driver.find_element_by_css_selector(".btn-img.btn-entry").click()except:print("验证码")self.driver.get("https://item.jd.com/4255683.html")time.sleep(1)self.driver.find_element_by_id("InitCartUrl")try:self.driver.find_element_by_id("btn-onkeybuy").click()except :# 没有货了,继续刷30次count = 0while count < 30:self.driver.get("https://item.jd.com/4255683.html")try:# 抢购self.driver.find_element_by_id("choose-btn-ko").click()except:count+=1self.driver.find_element_by_id("order-submit").click()time.time(1)print("over")# 获取验证码并把图片显示出来def request_capture(self):headers = {"Referer":"https://www.jd.com/","User_Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/53"}try:capture_url = self.driver.find_element_by_css_selector("#JD_Verification1").get_attribute("src2")# capture_url = capture_url + "&yys="+str(int(time.time()))print(capture_url)session = requests.Session();# cookies = requests.utils.cookiejar_from_dict(self.cookies_to_dict(),cookiejar=None, overwrite=True)# session.cookies = cookiesresponse = session.get("https:"+capture_url, headers=headers, allow_redirects=False)with open("captcha.jpg","wb") as f:print(type(response.content))f.write(response.content)f.close()im = Image.open("captcha.jpg")im.show()im.close()captcha = input("请输入验证码\n")return captchaexcept:print("无验证码")return input("请输入验证码\n")# Selenium cookies 转换成字典类型设置给 requestsdef cookies_to_dict(self):cookie =[item["name"] + ":" + item["value"] for item in self.jd_cookies]cookies = ';'.join(item for item in cookie) cook_map = {}for item in cookie :str = item.split(':')cook_map[str[0]] = str[1]return cook_mapif __name__ == "__main__":jd = jd()jd.request_jd()

六、源码地址

       源码地址和驱动地址,为什么选火狐,因为它没版本限制呀,谷歌的话浏览器版本和驱动版本一定得映射对。

       驱动配置:将下载好的驱动放在D:\Python36下,然后添加到系统Path中

这篇关于利用Selenium 登录京东,抢购19.9的荣耀手环3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/840020

相关文章

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务,使用API接口查询京东物流的便捷步骤,首先选择专业的数据平台的快递API接口:物流快递查询API接口-单号查询API - 探数数据 以下示例是参考的示例代码: import requestsurl = "http://api.tanshuapi.com/a

Shell脚本实现自动登录服务器

1.登录脚本 login_server.sh #!/bin/bash# ReferenceLink:https://yq.aliyun.com/articles/516347#show all host infos of serverList.txtif [[ -f ./serverList.txt ]]thenhostNum=`cat ./serverList.txt | wc -l`e

如何使用Selenium捕获控制台日志

Selenium是一个流行的开源工具,用于自动化Web浏览器。其中一个关键功能是能够与浏览器的开发者控制台交互。本文将向您展示如何在Selenium中使用Java获取控制台日志。这些日志对于调试和解决Selenium脚本的问题非常有用。 如何查看任何网页的控制台日志 首先,打开浏览器的开发者控制台。在大多数浏览器中,您可以通过右键点击页面并选择“检查”来做到这一点。我们将在我们的测试网站——h

SpringBoot登录退出|苍穹外卖登录退出分析

文章目录 概要整体流程注意事项一、拦截路径二、token三、注册防止用户重复提交 苍穹外卖登录退出分析注意解决JWT退出后依然有效的问题 概要 结合Spring Boot和Vue3实现安全的用户登录和退出功能,并使用拦截器、JWT和Redis缓存来提高系统的安全性和性能。 整体流程 注意事项 一、拦截路径 像登录页面的路径就不要拦截了,否则都不能登录了 例如:

Node.js和vue3实现GitHub OAuth第三方登录

Node.js和vue3实现GitHub OAuth第三方登录 前言 第三方登入太常见了,微信,微博,QQ…总有一个你用过。 在开发中,我们希望用户可以通过GitHub账号登录我们的网站,这样用户就不需要注册账号,直接通过GitHub账号登录即可。 效果演示 注册配置 GitHub 应用 1.首先登录你的GitHub然后点击右上角的头像->点击进入Settings页面 2.在

三方登录 - 华为登录

1.1. 开发准备 当应用需要使用以下开放能力的一种或多种时,为正常调试运行应用,需要预先添加公钥指纹 Account Kit(华为帐号服务)Call Kit(通话服务)Game Service Kit(游戏服务)Health Service Kit(运动健康服务)IAP Kit(应用内支付服务)Live View Kit(实况窗服务,当需要使用Push Kit时必须执行此步骤)Map Kit