Python某宝脚本初步(已绕过反扒滑块)

本文介绍了如何使用Python的selenium库编写自动化脚本,绕过淘宝的反扒机制进行登录、浏览购物车等操作。通过设置ChromeOptions参数,避免被识别为爬虫。详细讲解了各个代码段的功能,包括登录、点击购物车、选择商品等,适合初学者了解自动化脚本的基本思路和实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.简介

本程序的主要适用于想要初步了解脚本基本原则的人,实际程序的反应速度远达不到实际抢单的要求,但是对于脚本的起步学习入门有一定程度的帮助,能够引导读者建立初步的思想,便于之后深层次的了解

2.案例运行条件

浏览器(本文以chrome浏览器为例)

ChromeDriver

python3

3.源代码

# -*- coding:utf-8 -*-
#!/usr/bin/python3
from selenium import webdriver
import time
from selenium.webdriver.chrome import options

# 淘宝账号和密码,字符串形式
name = 'xxxxxxxxxx'
password = '12345678'

# 绕过淘宝反扒 实现步骤之后有详解
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_argument("--disable-blink-features=AutomationControlled")


# 访问淘宝
browser = webdriver.Chrome(options=options)
browser.get("https://www.taobao.com/")

# 寻找登录按钮并且输入账号密码
browser.find_element_by_link_text("亲,请登录").click()
browser.find_element_by_id('fm-login-id').send_keys(name)
browser.find_element_by_id('fm-login-password').send_keys(password)
time.sleep(0.5)
browser.find_element_by_class_name('fm-btn').click()

# 找到购物车
time.sleep(1)
browser.find_element_by_id('J_MiniCart').click()

# 找到购物车中某个商品的选择对话框并点击
time.sleep(0.5)
browser.find_element_by_xpath("/html/body/div[1]/div[2]/div[2]/div/div[2]/div[2]/div[1]/div/div[1]/div/div/label").click()

# 提交订单进入付款页面
time.sleep(0.5)
browser.find_element_by_id('J_SmallSubmit').click()

4.实现步骤详解

1.思想

首先,对于HTML的语法各位并不陌生,HTML中显示的页面都是以各种元素的形式展开,所以在检索的过程中要始终抓住要检索位置独特的属性,从而准确的找到目标,且尽量要用最快速的方法;

其次,在程序实际执行的过程中我们会发现,chrome浏览器会自动将访问模式定义为无头模式,也就是headless,并且各大电商实际上对selenium都在做一定程度的防范,比如: "直接使用webdriver"驱动淘宝网时,登陆的过程中会一直出现一个即使手动也不能清除的滑块,出现这个之后也就意味着,当前的程序不足以登录淘宝网,所以本程序中选择绕开淘宝网自身对selenium的监控,从而直接登录。

剩下的就是具体的操作,除了反扒过程比较有些知识点之外,其他的部分只要耐心就可以很轻松的解决。

2.详解

1.组件的安装

1.python3的安装

windows环境下安装python3比较容易,只要从官网下载安装包装到合适的位置,并且修改环境变量就可以,便不赘述。

2.ChromeDriver安装

注意:在下载ChromeDriver版本的时候,一定要明确当前自己chrome的版本号,选择对应的版本下载,避免不必要的麻烦。

下载网址:ChromeDriver

下载完成,解压,将其放在Python安装路径中Scripts文件夹中

3.selenium安装

这里建议先安装pip3,下载解压后执行setup.exe,之后用pip3命令直接下载:

pip3 install selenium

之后就可以正常的使用了

2.各片段回顾

1.导包
# -*- coding:utf-8 -*-
#!/usr/bin/python3
from selenium import webdriver
import time
from selenium.webdriver.chrome import options
2.绕过反脚本
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_argument("--disable-blink-features=AutomationControlled")

headless状态下的浏览器打开淘宝网输入密码很容易被系统监控为爬虫机器人,从而被滑块拦截,所以此步骤就是修改打开浏览器时的状态,为普通用户

3.访问
browser = webdriver.Chrome(options=options)
browser.get("https://www.taobao.com/")
4.按F12,找到对应属性去find,然后click即可
# 寻找登录按钮并且输入账号密码
browser.find_element_by_link_text("亲,请登录").click()
browser.find_element_by_id('fm-login-id').send_keys(name)
browser.find_element_by_id('fm-login-password').send_keys(password)
time.sleep(0.5)
browser.find_element_by_class_name('fm-btn').click()

# 找到购物车
time.sleep(1)
browser.find_element_by_id('J_MiniCart').click()

# 找到购物车中某个商品的选择对话框并点击
time.sleep(0.5)
browser.find_element_by_xpath("/html/body/div[1]/div[2]/div[2]/div/div[2]/div[2]/div[1]/div/div[1]/div/div/label").click()

# 提交订单进入付款页面
time.sleep(0.5)
browser.find_element_by_id('J_SmallSubmit').click()

这里需要提示以下两点:

实在没有办法的情况下再考虑xpath搜索,因为他会很大程度上影响程序执行的速度,能用简单的id,class,name就坚决不用xpath,也省下寻找相关元素的时间。

同时,考虑到实际的执行情况,延时函数是必要的,因为在页面没有加载出来之前如果程序执行到那一步的时候就会自动停止而不会等待页面响应之后继续执行,给页面响应提供一定的缓冲时间。

以上就是本篇文章的全部内容,如果读者觉得对你有帮助的话,请一键三连哦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值