python练习-爬虫
场景:
1、网址hppt://xxx.yyy.zzz.cn
2、打开网页后显示 :

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

4、页面有cookie。
方案一:
- 程序中嵌入浏览器根据网址打开得到页面,
- 然后程序读取记录自动填写数据,
- 程序截取验证码图片,然后解析,并且填入验证码
- 然后程序点击查询得到查询页面,
- 再从查询结果页面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练习-爬虫的更多相关文章
- Python简单爬虫入门三
我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...
- Ubuntu下配置python完成爬虫任务(笔记一)
Ubuntu下配置python完成爬虫任务(笔记一) 目标: 作为一个.NET汪,是时候去学习一下Linux下的操作了.为此选择了python来边学习Linux,边学python,熟能生巧嘛. 前期目 ...
- Python简单爬虫入门二
接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...
- [Python] 网络爬虫和正则表达式学习总结
以前在学校做科研都是直接利用网上共享的一些数据,就像我们经常说的dataset.beachmark等等.但是,对于实际的工业需求来说,爬取网络的数据是必须的并且是首要的.最近在国内一家互联网公司实习, ...
- python简易爬虫来实现自动图片下载
菜鸟新人刚刚入住博客园,先发个之前写的简易爬虫的实现吧,水平有限请轻喷. 估计利用python实现爬虫的程序网上已经有太多了,不过新人用来练手学习python确实是个不错的选择.本人借鉴网上的部分实现 ...
- GJM : Python简单爬虫入门(二) [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- Python分布式爬虫原理
转载 permike 原文 Python分布式爬虫原理 首先,我们先来看看,如果是人正常的行为,是如何获取网页内容的. (1)打开浏览器,输入URL,打开源网页 (2)选取我们想要的内容,包括标题,作 ...
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱(转)
原文:http://www.52nlp.cn/python-网页爬虫-文本处理-科学计算-机器学习-数据挖掘 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开 ...
- 关于Python网络爬虫实战笔记③
Python网络爬虫实战笔记③如何下载韩寒博客文章 Python网络爬虫实战笔记③如何下载韩寒博客文章 target:下载全部的文章 1. 博客列表页面规则 也就是, http://blog.sina ...
- 关于Python网络爬虫实战笔记①
python网络爬虫项目实战笔记①如何下载韩寒的博客文章 python网络爬虫项目实战笔记①如何下载韩寒的博客文章 1. 打开韩寒博客列表页面 http://blog.sina.com.cn/s/ar ...
随机推荐
- 如何快速的开发一个完整的iOS直播app(礼物篇)
搭建礼物列表 使用modal,设置modal样式为custom,就能做到从小往上显示礼物列表,并且能看见前面的直播界面 礼物模型设计 一开始创建3个礼物模型,保存到数组,传入给礼物View展示,本来礼 ...
- 加速 AI 训推:Lepton AI 如何构建多租户、低延迟云存储平台
Lepton AI 是一款面向开发者的 AI 平台,旨在提供易用.高效且可扩展的基础设施能力.该平台适用于各种训练.推理需求,GPU充足,在保证高性能的同时,能够灵活应对不断变化的工作负载.用户可以快 ...
- AI编程:如何编写提示词
这是小卷对AI编程工具学习的第2篇文章,今天讲讲如何编写AI编程的提示词,并结合实际功能需求案例来进行开发 1.编写提示词的技巧 好的提示词应该是:目标清晰明确,具有针对性,能引导模型理解问题 下面是 ...
- 应用中的 PostgreSQL项目案例
title: 应用中的 PostgreSQL项目案例 date: 2025/2/3 updated: 2025/2/3 author: cmdragon excerpt: 随着大数据和云计算的兴起,企 ...
- 创建json文件上传下载ftp
package org.jeecg.modules.util; import java.io.File; import java.io.FileOutputStream; import java.io ...
- last和history 查看登录和操作命令
last命令 last命令:用于显示用户最近登录信息.单独执行last命令,它会读取/var/log/wtmp的文件,并把该文件的内容记录的登入系统的用户名单全部显示出来. 语法 last(选项)(参 ...
- Qt数据库驱动编译(MySQL)
Qt数据库驱动编译(MySQL) 哈喽!我是 Pro_er,一名热爱编程的小伙伴.在这里我会分享一些实用的开发技巧和经验心得.如果你也对编程充满热情,欢迎关注并一起交流学习! 第一步:安装所需文件 / ...
- nacos(四): 创建第一个消费者Conumer(单体)
接上一篇<nacos(三): 创建第一个生产者producer(单体)>,我们这一篇实现单体的消费者功能,准备与上一次的生产者集成在一个单体项目中. 消费者的本质其实就是向nacos注册后 ...
- CentOS7安装RabbitMQ (安装包安装)
环境: CentOS7 需要安装:erlang 22.2 rabbitmq 3.8.3 参考: rabbit官网地址:http://www.rabbitmq.com/which-erlang.htm ...
- 本地AI搭建
搭建本地博客AI 目录 搭建本地博客AI 环境 下载ollama 选择模型 选择embedding模型 查看性能测试 选择合适的嵌入模型(Embedder) 估算内存 选择模型 量化类型介绍 Q5_0 ...
