爬虫学习——下载文件和图片、模拟登录方式进行信息获取

一、下载文件和图片

Scrapy中有两个类用于专门下载文件和图片,FilesPipeline和ImagesPipeline,其本质就是一个专门的下载器,其使用的方式就是将文件或图片的url传给它(eg:item[“file_urls”])。使用之前需要在settings.py文件中对其进行声明其导入路径,并且置于其他ItemPipeline之前。

二、模拟用户登录

有许多网站带有登录功能,并且有的网站必须登录了才能获取信息,故可以利用Scrapy来模拟用户登录的行为,进而自动化获取网页信息。登录实质是向服务器发送含有登录表单数据的HTTP请求。在Scrapy中有一个继承Request基类的FormRequest类,这个类可以帮助我们模拟用户登录的行为。其中最为简单的方式是(将需要登录的信息提前以发送请求的格式设定好,直接使用FormRequest的from_response方法就可以实现):

Fd={“number_phone”:******************,”password”:12334455}

Request=FormRequest.from_response(response,formdata=fd)

在实际应用中,一般将登录和爬取内容进行分开实现,保证逻辑为登录成功后,再爬取网页内容。

除了登录的网页外,网页中可能会出现识别验证码的情况,其设置的目的是为了防止爬虫爬取,故要求用户登录输入验证码。识别验证码的方法有很多,以下是常规的方法:

①OCR识别tesseract-ocr是基于OCR实现的一个验证码识别库,再Python中可以通过第三方库pytesseract进行调用。由于是第三方库故需要对其进行安装下载,,pip install tesseract-ocr,由于其依赖其他的图像处理库,故还需要安装pip install pillow pytesseract

一般这种的识别率不是很高,多在70%~80%之间,且用于识别较为简单的验证码,

②购买服务:对于复杂的验证码其识别较为困难,可以通过借助一些网站实现验证码识别服务(大概为1元钱识别100个验证码),并且这些平台提供HTTP服务接口,用户可以通过HTTP请求将验证码图片发送给平台,平台识别后将结果通过HTTP响应返回。类似的这类平台有阿里云市场上有很多这类服务的识别平台。

③人工识别验证码:在Scrapy下载完验证码图片后,调用image.show()方法将其显示出来,然后调用Python内置函数input,将人工识别的结果进行输入即可。

④利用浏览器的cookie:在使用浏览器登录网站后,包含用户身份信息的Cookie会被浏览器保存在本地,如果Scrapy爬虫能直接使用浏览器中的Cookie发送 HTTP请求,就可以绕过提交表单登录的过程。这个过程需要一直持续到人工登录网站后进行爬取操作。如何获取cookie,在python中直接进行pip install browsercookie即可进行导入并查看浏览器的cookie,使用方法:

Import browsercookie

Cookies=browsercookie.chrome()/firefox()即可

通过浏览器的cookie可以直接进行使用,将BrowserCookieMiddleware源码将其复制到middlewares.py中,并在配置文件中添加如下信息即可,直接使用cookie登录网站进行数据爬取。

USER_agent=”    ”

DOWNLOADER_MIDDLEWARES={
 “scrapy.downloadermiddlewares.cookie.CookieMiddleware”:None,
 “browser_cookie.middlewares.BrowserCookieMiddleware”:701,
}

通过这种方式就可以直接利用一个伪装好的用户代理来实现利用cookie对直接进行网站登录对其进行信息爬取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拒绝用电“盲人摸象”,体验智能微断的无缝升级

🌟 为什么需要智能微型断路器? 传统断路器只能被动保护电路,而安科瑞智能微型断路器不仅能实时监测用电数据,还能远程控制、主动预警,堪称用电安全的“全能卫士”!无论是家庭、工厂还是商业楼宇&#xff0…

如何优雅地为 Axios 配置失败重试与最大尝试次数

在 Vue 3 中,除了使用自定义的 useRequest 钩子函数外,还可以通过 axios 的拦截器 或 axios-retry 插件实现接口请求失败后的重试逻辑。以下是两种具体方案的实现方式: 方案一:使用 axios 拦截器实现重试 实现步骤: 通…

【Leetcode刷题随笔】242.有效的字母异位词

1. 题目描述 给定两个仅包含小写字母的字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。 字母异位词定义:两个字符串包含的字母种类和数量完全相同,但顺序可以不同(例如 “listen” 和 “silent”)。 …

示例:spring xml+注解混合配置

以下是一个 Spring XML 注解的混合配置示例,结合了 XML 的基础设施配置(如数据源、事务管理器)和注解的便捷性(如依赖注入、事务声明)。所有业务层代码通过注解简化,但核心配置仍通过 XML 管理。 1. 项目结…

Crawl4AI:打破数据孤岛,开启大语言模型的实时智能新时代

当大语言模型遇见数据饥渴症 在人工智能的竞技场上,大语言模型(LLMs)正以惊人的速度进化,但其认知能力的跃升始终面临一个根本性挑战——如何持续获取新鲜、结构化、高相关性的数据。传统数据供给方式如同输血式营养支持&#xff…

【机器学习-周总结】-第4周

以下是本周学习内容的整理总结,从技术学习、实战应用到科研辅助技能三个方面归纳: 文章目录 📘 一、技术学习模块:TCN 基础知识与结构理解🔹 博客1:【时序预测05】– TCN(Temporal Convolutiona…

Mysql--基础知识点--79.1--双主架构如何避免回环复制

1 避免回环过程 在MySQL双主架构中,GTID(全局事务标识符)通过以下流程避免数据回环: 1 事务提交与GTID生成 在Master1节点,事务提交时生成一个全局唯一的GTID(如3E11FA47-71CA-11E1-9E33-C80AA9429562:2…

安宝特科技 | AR眼镜在安保与安防领域的创新应用及前景

随着科技的不断进步,增强现实(AR)技术逐渐在多个领域展现出其独特的优势,尤其是在安保和安防方面。AR眼镜凭借其先进的功能,在机场、车站、海关、港口、工厂、园区、消防局和警察局等行业中为安保人员提供了更为高效、…

Linux第十讲:进程间通信IPC

Linux第十讲:进程间通信IPC 1.进程间通信介绍1.1什么是进程间通信1.2为什么要进程间通信1.3怎么进行进程间通信 2.管道2.1理解管道2.2匿名管道的实现代码2.3管道的五种特性2.3.1匿名管道,只能用来进行具有血缘关系的进程进行通信(通常是父子)2.3.2管道文…

微信小程序通过mqtt控制esp32

目录 1.注册巴法云 2.设备连接mqtt 3.微信小程序 备注 本文esp32用的是MicroPython固件,MQTT服务用的是巴法云。 本文参考巴法云官方教程:https://bemfa.blog.csdn.net/article/details/115282152 1.注册巴法云 注册登陆并新建一个topic&#xff…

SQLMesh隔离系统深度实践指南:动态模式映射与跨环境计算复用

在数据安全与开发效率的双重压力下,SQLMesh通过动态模式映射、跨环境计算复用和元数据隔离机制三大核心技术,完美解决了生产与非生产环境的数据壁垒问题。本文提供从环境配置到生产部署的完整实施框架,助您构建安全、高效、可扩展的数据工程体…

Spring Data详解:简化数据访问层的开发实践

1. 什么是Spring Data? Spring Data 是Spring生态中用于简化数据访问层(DAO)开发的核心模块,其目标是提供统一的编程模型,支持关系型数据库(如MySQL)、NoSQL(如MongoDB)…

15 nginx 中默认的 proxy_buffering 导致基于 http 的流式响应存在 buffer, 以 4kb 一批次返回

前言 这也是最近碰到的一个问题 直连 流式 http 服务, 发现 流式响应正常, 0.1 秒接收到一个响应 但是 经过 nginx 代理一层之后, 就发现了 类似于缓冲的效果, 1秒接收到 10个响应 最终 调试 发现是 nginx 的 proxy_buffering 配置引起的 然后 更新 proxy_buffering 为…

源超长视频生成模型:FramePack

FramePack 是一种下一帧(下一帧部分)预测神经网络结构,可以逐步生成视频。 FramePack 将输入上下文压缩为固定长度,使得生成工作量与视频长度无关。即使在笔记本电脑的 GPU 上,FramePack 也能处理大量帧,甚…

第6次课 贪心算法 A

向日葵朝着太阳转动,时刻追求自身成长的最大可能。 贪心策略在一轮轮的简单选择中,逐步导向最佳答案。 课堂学习 引入 贪心算法(英语:greedy algorithm),是用计算机来模拟一个「贪心」的人做出决策的过程…

Windows使用SonarQube时启动脚本自动关闭

一、解决的问题 Windows使用SonarQube时启动脚本自动关闭,并发生报错: ERROR: Elasticsearch did not exit normally - check the logs at E:\Inori_Code\Year3\SE\sonarqube-25.2.0.102705\sonarqube-25.2.0.102705\logs\sonarqube.log ERROR: Elastic…

人机共跑,马拉松人型机器人同跑

马拉松比赛对人形机器人来说,是一场对硬件极限的测试,涉及机械、传感器、能源管理等多个方面。用户问的是硬件方面的考察和改进,这意味着我的回答需要聚焦于硬件性能,而不是算法或软件的优化。 对人形机器人硬件的考研 机械结构与…

Ubuntu Linux 中文输入法默认使用英文标点

先ubuntu从wayland切换到x11, sudo nano /etc/gdm3/custom.conf WaylandEnablefalse #取消注释 sudo systemctl restart gdm3 #使设置生效然后安装fcitx(是fcitx4版本)和 fcitx-googlepinyin, sudo apt install fcitx fcitx-googlepinyin 再sudo dpkg -i 安装百度输入法deb…

[论文阅读]ConfusedPilot: Confused Deputy Risks in RAG-based LLMs

ConfusedPilot: Confused Deputy Risks in RAG-based LLMs [2408.04870] ConfusedPilot: Confused Deputy Risks in RAG-based LLMs DEFCON AI Village 2024 文章是针对Copilot这样一个RAG服务提供平台的攻击 在企业环境中整合人工智能工具(如 RAG)会…

前端做模糊查询(含AI版)

文章目录 前言代码实现AI个人 总结 前言 因为table需要编辑,所以如果从后端拿数据,编辑后筛选数据就会丢失。这时候就需要前端一次性拿到所有数据进行过滤,数据进行浅拷贝,以便过滤后的数据修改之后,同步修改总数居&a…