场景:

1、网址hppt://xxx.yyy.zzz.cn
2、打开网页后显示 :

3、填上姓名 身份证和验证码,点击查询后,返回查询结果。

4、页面有cookie。

方案一:

  1. 程序中嵌入浏览器根据网址打开得到页面,
  2. 然后程序读取记录自动填写数据,
  3. 程序截取验证码图片,然后解析,并且填入验证码
  4. 然后程序点击查询得到查询页面,
  5. 再从查询结果页面DOM解析得到相关数据

方案二:

采用Python。真是牛逼得一塌糊涂。

import requests
from PIL import Image
import pytesseract # 获取cookie
session = requests.Session()
response = session.get("http://example.com")
cookie = response.cookies.get_dict() # 发送HTTP请求,获取响应数据
headers = {
"Cookie": "; ".join([f"{key}={value}" for key, value in cookie.items()]),
}
response = session.get("http://example.com", headers=headers)
content = response.text # 解析响应数据,获取验证码URL
start_position = content.find('<img src="/verifyCode')
end_position = content.find('"', start_position + 10)
captcha_url = 'http://example.com' + content[start_position + 10:end_position] # 发送带cookie的HTTP请求,获取验证码的二进制数据
response = session.get(captcha_url, headers=headers)
captcha_data = response.content # 将二进制图片保存为本地文件
with open('captcha.png', 'wb') as f:
f.write(captcha_data)

# 识别图片中的文字
image = Image.open('captcha.png')
code = pytesseract.image_to_string(image) # 打印验证码内容
print("验证码内容:", code)
# 7386

至此,关键问题得到解决。

注意得问题:

1、安装requests
2、安装PIL
3、安装pytesseract。其中要另外单独安装与pytesseract配套的Python的OCR识别库。
4.1下载OCR识别库地址 https://digi.bib.uni-mannheim.de/tesseract/

根据你系统进行选择。

4.2下载OCR安装识别库

其中:

4.3配置OCR路径:

4.3.1看一下你安装得目录。如:D:\Program Files\Tesseract-OCR\tesseract.exe

4.3.2系统环境变量中,把D:\Program Files\Tesseract-OCR\tesseract.exe配置进去。

4.4.找到脚本文件 pytesseract.py。编辑修改:

tesseract_cmd = r'D:\Program Files\Tesseract-OCR\tesseract.exe'
from os import remove
from os.path import normcase
from os.path import normpath
from os.path import realpath
from pkgutil import find_loader
from tempfile import NamedTemporaryFile
from time import sleep from packaging.version import InvalidVersion
from packaging.version import parse
from packaging.version import Version
from PIL import Image tesseract_cmd = r'D:\Program Files\Tesseract-OCR\tesseract.exe' numpy_installed = find_loader('numpy') is not None
if numpy_installed:
from numpy import ndarray pandas_installed = find_loader('pandas') is not None
if pandas_installed:
import pandas as pd DEFAULT_ENCODING = 'utf-8'

5.可能出现得问题:

常见问题:FileNotFoundError:[WinError 2]系统找不到指定文件。

解决办法:

打开文件pytesseract.py,找到如下代码,将tesseract_cmd的值修改为全路径,再次使用就不会报这个错了。

没了,goodluck!

python练习-爬虫的更多相关文章

  1. Python简单爬虫入门三

    我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...

  2. Ubuntu下配置python完成爬虫任务(笔记一)

    Ubuntu下配置python完成爬虫任务(笔记一) 目标: 作为一个.NET汪,是时候去学习一下Linux下的操作了.为此选择了python来边学习Linux,边学python,熟能生巧嘛. 前期目 ...

  3. Python简单爬虫入门二

    接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...

  4. [Python] 网络爬虫和正则表达式学习总结

    以前在学校做科研都是直接利用网上共享的一些数据,就像我们经常说的dataset.beachmark等等.但是,对于实际的工业需求来说,爬取网络的数据是必须的并且是首要的.最近在国内一家互联网公司实习, ...

  5. python简易爬虫来实现自动图片下载

    菜鸟新人刚刚入住博客园,先发个之前写的简易爬虫的实现吧,水平有限请轻喷. 估计利用python实现爬虫的程序网上已经有太多了,不过新人用来练手学习python确实是个不错的选择.本人借鉴网上的部分实现 ...

  6. GJM : Python简单爬虫入门(二) [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  7. Python分布式爬虫原理

    转载 permike 原文 Python分布式爬虫原理 首先,我们先来看看,如果是人正常的行为,是如何获取网页内容的. (1)打开浏览器,输入URL,打开源网页 (2)选取我们想要的内容,包括标题,作 ...

  8. Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱(转)

    原文:http://www.52nlp.cn/python-网页爬虫-文本处理-科学计算-机器学习-数据挖掘 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开 ...

  9. 关于Python网络爬虫实战笔记③

    Python网络爬虫实战笔记③如何下载韩寒博客文章 Python网络爬虫实战笔记③如何下载韩寒博客文章 target:下载全部的文章 1. 博客列表页面规则 也就是, http://blog.sina ...

  10. 关于Python网络爬虫实战笔记①

    python网络爬虫项目实战笔记①如何下载韩寒的博客文章 python网络爬虫项目实战笔记①如何下载韩寒的博客文章 1. 打开韩寒博客列表页面 http://blog.sina.com.cn/s/ar ...

随机推荐

  1. 如何快速的开发一个完整的iOS直播app(礼物篇)

    搭建礼物列表 使用modal,设置modal样式为custom,就能做到从小往上显示礼物列表,并且能看见前面的直播界面 礼物模型设计 一开始创建3个礼物模型,保存到数组,传入给礼物View展示,本来礼 ...

  2. 加速 AI 训推:Lepton AI 如何构建多租户、低延迟云存储平台

    Lepton AI 是一款面向开发者的 AI 平台,旨在提供易用.高效且可扩展的基础设施能力.该平台适用于各种训练.推理需求,GPU充足,在保证高性能的同时,能够灵活应对不断变化的工作负载.用户可以快 ...

  3. AI编程:如何编写提示词

    这是小卷对AI编程工具学习的第2篇文章,今天讲讲如何编写AI编程的提示词,并结合实际功能需求案例来进行开发 1.编写提示词的技巧 好的提示词应该是:目标清晰明确,具有针对性,能引导模型理解问题 下面是 ...

  4. 应用中的 PostgreSQL项目案例

    title: 应用中的 PostgreSQL项目案例 date: 2025/2/3 updated: 2025/2/3 author: cmdragon excerpt: 随着大数据和云计算的兴起,企 ...

  5. 创建json文件上传下载ftp

    package org.jeecg.modules.util; import java.io.File; import java.io.FileOutputStream; import java.io ...

  6. last和history 查看登录和操作命令

    last命令 last命令:用于显示用户最近登录信息.单独执行last命令,它会读取/var/log/wtmp的文件,并把该文件的内容记录的登入系统的用户名单全部显示出来. 语法 last(选项)(参 ...

  7. Qt数据库驱动编译(MySQL)

    Qt数据库驱动编译(MySQL) 哈喽!我是 Pro_er,一名热爱编程的小伙伴.在这里我会分享一些实用的开发技巧和经验心得.如果你也对编程充满热情,欢迎关注并一起交流学习! 第一步:安装所需文件 / ...

  8. nacos(四): 创建第一个消费者Conumer(单体)

    接上一篇<nacos(三): 创建第一个生产者producer(单体)>,我们这一篇实现单体的消费者功能,准备与上一次的生产者集成在一个单体项目中. 消费者的本质其实就是向nacos注册后 ...

  9. CentOS7安装RabbitMQ (安装包安装)

    环境: CentOS7 需要安装:erlang 22.2  rabbitmq 3.8.3 参考: rabbit官网地址:http://www.rabbitmq.com/which-erlang.htm ...

  10. 本地AI搭建

    搭建本地博客AI 目录 搭建本地博客AI 环境 下载ollama 选择模型 选择embedding模型 查看性能测试 选择合适的嵌入模型(Embedder) 估算内存 选择模型 量化类型介绍 Q5_0 ...