Directorio de artículos
Prefacio
Este es el sexto capítulo, pronto. Si lo sabe todo, este artículo será relativamente fácil.
(¿Es este realmente el caso? ¡No lo sé!)
Después de todo, este artículo trata sobre el inicio de sesión con código de verificación.
Método 1: inicio de sesión con cookies
Esta es una forma relativamente simple y grosera.En primer lugar, si no hay necesidad de un código de verificación, solía rastrear CSDN para obtener mi información personal. De esta manera es genial.
Debido a las características de la cookie y la sesión, es posible que aumente durante el período de validez de la cookie.
La razón para decir esto es que naturalmente se debe al éxito (es difícil decir qué sitios web se han rastreado, entiéndalo). Sin embargo, debido al pequeño número de pruebas, no me atrevo a garantizar el 100% de éxito.
De todos modos, obtenga la cookie lo antes posible después de iniciar sesión e inicie sesión lo antes posible.
Aquí me gustaría decir algo: Antes de hacer una "operación de gama alta", ¿por qué no probar este método durante veinte minutos? ¿Y si se hace?
Una vez quise usar selenio para iniciar sesión manualmente. Este método puede iniciar sesión después de una prueba, pero rastrear datos no es tan simple (tal vez solo use selenio para hacer un poco, no para capturar datos).
Método 2: reconocimiento óptico de caracteres
Nota: No lea este método si no lo comprende. No es de extrañar que nunca usaré este método en mi vida, y mucho menos usaré pytesseract.
Escuche el nombre, genial.
En realidad, es OCR.
Descargar la imagen del código de verificación
Primero busque una URL de destino, primero busque el código de verificación simple, texto en blanco y negro.
El enlace de muestra de la imagen captcha , hay sesenta imágenes de código de verificación en escala de grises, lo cual es suficiente.
Primero baje la imagen, puede ver que esta imagen está incrustada en la página. ¿Qué hacer con imágenes como esta?
No es difícil hacerlo, las imágenes también son archivos, siempre que sean archivos, deben guardarse en la carpeta del sitio web.
Las imágenes incrustadas simplemente se escriben en una ruta relativa.
Pruébelo con el directorio raíz del sitio web y la dirección de la imagen: https://captcha.com/images/captcha/botdetect3-captcha-ancientmosaic.jpg
¿Puede descargarlo ahora?
import requests
import os
import time
from lxml import etree
def get_Page(url,headers):
response = requests.get(url,headers=headers)
if response.status_code == 200:
return response.text
return None
def parse_Page(html,headers):
html_lxml = etree.HTML(html)
datas = html_lxml.xpath( './/div[@class="captcha_images_left"]|.//div[@class="captcha_images_right"]')
# 创建保存验证码文件夹
file = 'D:/YZM'
if os.path.exists(file):
os.chdir(file)
else:
os.mkdir(file)
os.chdir(file)
for data in datas:
# 验证码名称
name = data.xpath( './/h3')
# 验证码链接
src = data.xpath( './/div/img/@src')
# print(len(src))
count = 0
for i in range(len(name)):
# 验证码图片文件名
filename = name[i].text + '.jpg'
img_url = 'https://captcha.com/'+ src[i]
response = requests.get(img_url,headers=headers)
if response.status_code == 200:
image = response.content
with open(filename, 'wb') as f:
f.write(image)
count += 1
print( '保存第{}张验证码成功'.format(count))
time.sleep( 1)
def main():
url = 'https://captcha.com/captcha-examples.html?cst=corg'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'}
html = get_Page(url,headers)
parse_Page(html,headers)
if __name__ == '__main__':
main()
Reconocimiento de texto de Baidu
Python es una biblioteca tesserocr que maneja OCR. Se dice que la precisión y el nivel de uso no son tan buenos como Baidu, así que hablaré de esto primero.
No hablaré de las capacidades de la interfaz, la gente tiene sus propios anuncios oficiales.
Me enfocaré en cómo usarlo.
Primero, debes registrar una cuenta.
La creación del programa de inteligencia artificial Baidu y la adquisición de AKSK
Implementación y prueba de código
from aip import AipOcr # pip install baidu-aip
import os
i = 0
j = 0
APP_ID = '你的 APP_ID '
API_KEY = '你的API_KEY'
SECRET_KEY = '你的SECRET_KEY'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 读取图片
file_path = 'D:/YZM'
filenames = os.listdir(file_path)
# print(filenames)
for filename in filenames:
# 将路径与文件名结合起来就是每个文件的完整路径
info = os.path.join(file_path,filename)
with open(info, 'rb') as fp:
# 获取文件夹的路径
image = fp.read()
# 定义参数变量
options = {
'detect_direction': 'true',
'language_type': 'CHN_ENG',
}
# 调用通用文字识别接口
result = client.basicGeneral(image,options)
print(result)
if result[ 'words_result_num'] == 0:
print(filename + ':'+ '----')
i += 1
else:
for word in result['words_result']:
print(filename + ' : '+word['words'])
j += 1
print('共识别验证码{}张'.format(i+j))
print('未识别出文本{}张'.format(i))
print('已识别出文本{}张'.format(j))
Es terrible, solo dos de ellos tienen razón. . .
Está bien, que no cunda el pánico, echemos un vistazo a la imagenProcesando imagen digital。
Procesando imagen digital
from PIL import Image
import os
file_path = 'D:/YZM'
filenames = os.listdir(file_path)
for filename in filenames:
info = os.path.join(file_path,filename)
# 打开图片
image = Image.open(info)
# 传入'L'将图片转化为灰度图像
gray = image.convert('L')
bw = gray.point(lambda x: 0 if x < 1 else 255, '1')
bw.save(filename)
Después del tratamiento, la situación general es mejor, pero eso es todo.
Debe ser que no soy bueno aprendiendo. Después de todo, mi procesamiento de imágenes digitales se puede hacer sin el esfuerzo de profesores y compañeros. Una gran parte de las fotografías originales en blanco y negro se borran después de lavarlas. .
Pero, dado que está automatizado, no lo lave, solo intente más.
Método tres:
El método anterior huele mal y es largo. No me gusta y desperdicio mi tarde.
Soy una persona real, gato negro y gato blanco, siempre que el gato pueda atrapar ratones es un buen gato.
El primer método requiere una cookie, lo que dará miedo, y luego la operación con selenio no es fácil de captar los datos.
No importa cómo sea el segundo método, es solo para identificar y, finalmente, debe enviar los datos con el método de publicación.
Ya que puedo usar selenio y cookies, ¿qué más no puedo hacer? Baja directamente y completa la imagen. Violencia En ese momento, nuestros amigos de "Principiante a Confundido" del equipo de "Pangolín Reptil" hicieron precisamente eso, y lo lograron.
Sólo date cuenta, no te importa cómo me doy cuenta.
Bien, seamos honestos, si tiene que lidiar con una gran cantidad de códigos de verificación, el segundo método es profundizar.
Veamos algo más a continuación.
Cambiar de gusto
Código de verificación del control deslizante: entrada del rastreador clásico (18) | Reconocimiento del código de verificación por deslizamiento
Mírelo, hemos tratado antes, todos somos estudiantes de big data, en realidad existe la posibilidad de que aparezca en este artículo.
Descifrando el código de verificación: entrada del rastreador clásico (19) | Mayor dificultad, descifrando el código de verificación
Pongamos de nuevo el vínculo entre scrapy y expresión regular. En los próximos días, hay razones para tener que salir por un período de tiempo, por lo que se ralentizará.
Scrapy: Quiero aprender Python en secreto, y luego aturdir a todos (el decimotercer día)
todos están muy motivados.
Regular: Hoy pondré las palabras aquí, y mañana tendré [Expresiones regulares]
este artículo que personalmente me gusta, pero no hay tráfico.
Estoy emitiendo dos oraciones: originalmente se esperaba que esta serie escribiera ocho puntos de conocimiento y dos proyectos para el combate real, pero debido a mi propia tecnología limitada y algunas razones físicas, terminaré el sexto artículo. Ahora que tengo algunos conocimiento, pondré dos proyectos de combate reales a continuación. Esto no se descartará, ni será del tipo que todos están haciendo. Son los huesos duros que encontró el equipo "Reptilian Pangolin". Vamos a comer algo.
Este artículo, aunque es un poco ridículo, pero no es muy acuoso, ¿verdad?