爬虫过滑块

以某网站为例进行过滑块,注意两点:

1,模拟轨迹

2,禁止浏览器对selenium的检测

代码如下:

import time
from time import sleep
# selenium:基于浏览器自动化的一个模块
from selenium import webdriver
import time
from selenium.webdriver import ActionChains
from PIL import Image

#防止浏览器对selenium的检测,否则过滑块时候,无论你怎么模拟人去过滑块,还是会被检测出来,而导致错误
options=webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
bro=webdriver.Chrome(executable_path=r'D:\pycharm\PyCharm Community Edition 2020.1.2\bin\chromedriver.exe',options=options)

url = 'https://etax.guangdong.chinatax.gov.cn'
bro.get(url)  # 用户发起请求
# 定位弹窗标签
tanchuang = bro.find_element_by_xpath('//*[@id="layui-layer1"]/div[2]/a')
time.sleep(1)
#点击关闭操作
tanchuang.click()
time.sleep(2)
#定位我要查询标签
chaxun=bro.find_element_by_xpath('/html/body/div[1]/div[3]/ul/a[3]')
#点击查询标签
chaxun.click()
time.sleep(1)
#定位密码登录按钮
mmdenglu=bro.find_element_by_xpath('//*[@id="mmdl_QieHuan"]')
mmdenglu.click()
time.sleep(1)
#社会信用代码
shuru1=bro.find_element_by_xpath('//*[@id="shxydmOrsbh"]')
shuru1.send_keys('91440606MA5383U01E')
time.sleep(1)
#用户名
shuru2=bro.find_element_by_xpath('//*[@id="userNameOrSjhm"]')
shuru2.send_keys('13277886658')
time.sleep(1)
#密码
shuru3=bro.find_element_by_xpath('//*[@id="passWord"]')
shuru3.send_keys('Aa123456')
time.sleep(1)
#过滑块,先定位滑块,然后获取滑块坐标,然后将滑块执行鼠标操作,纵坐标不变,横坐标向右移一定像素单位,
huakuai=bro.find_element_by_xpath('//*[@id="nc_1_n1z"]')
def get_track(distance):      # distance为传入的总距离
    # 移动轨迹
    track=[]
    # 当前位移
    current=0
    # 减速阈值
    mid=distance*4/5
    # 计算间隔
    t=1
    # 初速度
    v=3
    while current

你可能感兴趣的:(爬虫,chrome,python)