利用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

相关文章

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo

Python Selenium动态渲染页面和抓取的使用指南

《PythonSelenium动态渲染页面和抓取的使用指南》在Web数据采集领域,动态渲染页面已成为现代网站的主流形式,本文将从技术原理,环境配置,核心功能系统讲解Selenium在Python动态... 目录一、Selenium技术架构解析二、环境搭建与基础配置1. 组件安装2. 驱动配置3. 基础操作模

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring