Mrcdh技术博客 Mrcdh技术博客
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Mrcdh

全栈开发小学生
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Mysql

  • PHP

  • Python

    • scrapy

      • Scrapy快速入手
      • scrapy - 保存输入处理登录图片验证码
        • 安装 PIL 库
        • 使用方法
    • pip基本使用及下载速度慢解决方案
    • python之Anaconda(conda)版本管理
    • 使用python-dcox操作word
    • python之pyenv版本管理
    • 简易python爬虫常用功能
  • java

  • Go

  • 数据库

  • C#

  • ElasticSearch

  • Git

  • Gulp

  • Microsoft

  • Linux

  • 其它

  • 技术
  • Python
  • scrapy
mrcdh
2020-10-23
目录

scrapy - 保存输入处理登录图片验证码

# scrapy - 保存输入处理登录图片验证码

在使用 scrapy 爬虫进行爬取网站的时候会遇到登录验证码的问题,这里我们使用 PIL 库来保存验证码。

# 安装 PIL 库

pip install Pillow
1

# 使用方法

import scrapy
from PIL import Image
import io
class Demo(scrapy.Spider):
  def parse(self, response):
    # 获取验证码的图片地址
    imgurl = response.css('#vcode_img::attr(src)').get()
    if imgurl is not None:
      print("验证码地址:" + imgurl)
      # 将地址加入下一个请求
      captUrl = response.urljoin(imgurl)
      # 请求验证码,带上当前的响应response
      yield scrapy.Request(captUrl, callback=self.login, meta={'login_response':response}, dont_filter=True)
  # 输入验证码并登陆
  def login(self,response):
    login_response = response.meta.get('login_response')
    # 获取验证码
    img = Image.open(io.BytesIO( response.body ))
    # 显示验证码
    img.show()
    # 获取输入的值
    capt_value = input("请输入验证码->")
    # 登录请求
    yield scrapy.FormRequest.from_response(login_response, url="http://localhost/login/ajax_login", formdata={ "user_name":"123456", "admin":"123456", "checkcode": capt_value }, callback=self.after_login)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#python#scrapy
上次更新: 2024/01/29, 14:48:38
Scrapy快速入手
pip基本使用及下载速度慢解决方案

← Scrapy快速入手 pip基本使用及下载速度慢解决方案→

最近更新
01
uniapp常见问题
03-19
02
Vue3项目搭建
12-25
03
使用pnpm的monorepo组织项目
11-01
更多文章>
Theme by Vdoing | Copyright © 2020-2025 Mrcdh | 苏ICP备2020058908号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×