USEGEAR

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

python练习-爬虫

场景:

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'

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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!

 


 

posted on   USEGEAR  阅读(46)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示