Inicio de sesión del rastreador (inicio de sesión de controlador web y solicitud de inicio de sesión)

solicitud de solicitud

Página de inicio de sesión

Inserte la descripción de la imagen aquí

Código fuente correspondiente

Inserte la descripción de la imagen aquí

Código correspondiente

Inserte la descripción de la imagen aquí

Encuentra el elemento correspondiente

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
1. Use la URL de procesamiento de la aplicación como URL en session.post
2. Ingrese el número de cuenta en el diccionario de Pyload como el valor de "nombre de usuario", e ingrese la contraseña en el diccionario de Pyload como el valor de "contraseña". El nombre de la clave depende de la fuente de la página El nombre obtenido en el código para el cuadro de texto.

aplicación webdriver

Utilice complementos para generar código directamente

from selenium import webdriver
from bs4 import BeautifulSoup
import requests
import time
driver = webdriver.Chrome()     # 打开 Chrome 浏览器

# 将刚刚复制的帖在这
driver.get("http://www.xue1888.com/")
driver.execute_script("window.scrollTo(100,0);")
driver.get_screenshot_as_file("./sreenshot1.png")
key = input("please input the key with the picture:")
driver.find_element_by_name("username").send_keys("02158412")
driver.find_element_by_name("password").send_keys("194646")
driver.find_element_by_name("key").send_keys(key)
driver.find_element_by_xpath(u"//input[@value='登 录']").click()
time.sleep(10)
driver.find_element_by_link_text(u"点击进入文献下载页").click()
driver.get("http://www.xue1888.com/e/action/ListInfo/?classid=1")
driver.find_element_by_xpath("//div[@id='down_content']/div/div/ul/li[2]/a/div/h3").click()
driver.find_element_by_link_text(u"英文文献下载(推荐)").click()
driver.find_element_by_id("gs_hdr_tsi").clear()
driver.find_element_by_id("gs_hdr_tsi").send_keys("Pest identification")
driver.find_element_by_id("gs_hdr_frm").submit()

Todos los navegadores principales admiten el método scrollTo ()

滚动内容的坐标位置100,500:
function scrollWindow(){
    
    
    window.scrollTo(100,500);
}

Inspirado por: https://www.jb51.net/article/140239.htm El
contenido específico es el siguiente:
1. Instale selenium:

Si ya instaló anaconda3, ingrese directamente el comando para instalar selenium en la ventana DOS de Windows:

Python -m pip install - actualizar pip

Ver versión pip mostrar selenio

2. Luego vaya a http://chromedriver.storage.googleapis.com/index.html para descargar chromedriver.exe (descargue el correspondiente según la versión de chrome)

3. Descomprima el chromedriver.exe descargado y colóquelo en el directorio especificado

4. Instale tesseract-ocr.exe para configurar las variables de entorno

5. Instalar pytesseract: pip install pytesseract

6.secuencia de comandos de python

Idea: 6.1 En la página de inicio de sesión, presione F12 para verificar el elemento y obtener la identificación del elemento de la imagen del código de verificación del código de verificación de la contraseña del nombre de usuario

6.2. Invocar chromeriver

6.3. La ubicación de la captura de pantalla de la imagen del código de verificación

6.4. Pytesseract reconoce los caracteres en la imagen y, finalmente, ¡el código de verificación se reconoce como vacío! ! ? ? ? Esto para ser resuelto

6.5. El guión es el siguiente:


from selenium import webdriver
from PIL import Image
import pytesseract
import os,time
chromedriver = "D:\Program Files\Anaconda3\selenium\webdriver\chromedriver.exe" #这里写本地的chromedriver 的所在路径
os.environ["webdriver.Chrome.driver"] = chromedriver #调用chrome浏览器
driver = webdriver.Chrome(chromedriver)
driver.get("http://xxxx.com") #该处为具体网址
driver.refresh() #刷新页面
driver.maximize_window() #浏览器最大化
#获取全屏图片,并截取验证码图片的位置
driver.get_screenshot_as_file('a.png')
location = driver.find_element_by_id('imgValidateCode').location
size = driver.find_element_by_id('imgValidateCode').size
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
a = Image.open("a.png")
im = a.crop((left,top,right,bottom))
im.save('a.png')
time.sleep(1)
#打开保存的验证码图片
image = Image.open("a.png")
#图片转换成字符
vcode = pytesseract.image_to_string(image)
print(vcode)
#填充用户名 密码 验证码
driver.find_element_by_id("staffCode").send_keys("username")
driver.find_element_by_id("pwd").send_keys("password")
driver.find_element_by_id("validateCode").send_keys(vcode)
#点击登录 
driver.find_element_by_id("loginBtn").click()

Supongo que te gusta

Origin blog.csdn.net/lockhou/article/details/115033853
Recomendado
Clasificación