学习Python爬虫前先看这篇文章,防止自己以后踩坑!

【愚公系列】《Python网络爬虫从入门到精通》049-了解Scrapy爬虫框架 大家好,欢迎来到《Python网络爬虫从入门到精通》系列教程的第48篇文章。经过前面几十篇的学习,我们已经掌握了使用 requests、BeautifulSoup、Selenium 等工具进行数据抓取的基本方法。然而,随着项目的复杂度提升,这些工具在面对大型、高并发、高可维护性的爬虫任务时,往往力不从心。这时候,专业的爬虫框架——Scrapy,就该登场了。Scrapy 是一个由 Python 编写的、功能强大的异步爬虫框架,它具备高性能、模块化、易扩展等诸多优点,被广泛应用于各种数据采集任务中。 阅读详情
摘要:爬虫就是模拟人的访问操作来获取网页/App数据的一种程序。

爬虫是什么?

简单的说爬虫就是模拟人的访问操作来获取网页/App数据的一种程序。我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛。把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就可以被抓取下来了。

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤
QQ群:961562169

而我们平时所看到的搜索引擎、统计数据、出行类软件、聚合类平台都离不开网络爬虫。

爬虫的应用领域有哪些?

我们常见的应用场景简单举例如下,

1.搜索引擎抓取网页信息

2.出行类软件通过爬虫抢票

3.论坛或者微博的舆情监控。用数据采集技术来监测搜索引擎、新闻门户、论坛、博客、微博、微信、报刊、视频的舆情。说白了就是用这个来实现实时的发现某一行业或地区的热点事件,譬如清博舆情,百度舆情等等。

4.比价网站的应用。如今各大电商平台为了活跃用户进行各种秒杀活动,还有优惠券等,同样的一个商品可能在不同网购平台价格不一样,这就催生了返利网,折多多,折xx等。那么这些网站是如何在几分钟之内甚至秒级的时间内知道一件商品在某站有优惠的呢?这就需要一个数据采集系统(爬虫)来实时监控各站的价格浮动,先采商品的价格、型号、配置等,在做处理、分析、反馈。

为什么学习爬虫?

互联网的快速发展,带来了前所未有的便利,同样也带来很多之前没有遇到的新问题。获取信息的成本越来越低,信息的种类和数量越来越多,但是我们处理信息的能力并没有提升,很难从信息中提取自己感兴趣的内容。

而学会爬虫就可以自动高效的获取互联网中我们感兴趣的内容,帮助我们快速搭建属于自己的信息知识库。

如何完成一个轻量级爬虫

这里简要概述为三个步骤:获取数据 - 解析数据 - 存储数据。以下是完成这些步骤所涉及的工具,供大家参考。

获取数据:urllib2、Requests、Selenium、aiohttp

获取数据的工具:Chrome、Fiddler、MitmProxy、Appium

解析数据:Css 选择器、PyQuery、BeautifulSoup、Xpath、Re

存储数据:MySQL、MongoDB、Redis

工程化爬虫

工程化爬虫的项目推荐:Scrapy、PySpider

官方文档:https://docs.scrapy.org/en/latest/、http://docs.pyspider.org/en/latest/

Github 地址:https://github.com/scrapy/scrapy、https://github.com/binux/pyspider

反爬虫的措施与应对

1.网页反爬虫—字体反爬

开发者可以使用 @font-face 为网页指定字体,就可以调用自定义的字体文件来渲染网页中的文字,网页中的文字变成相应的编码,这时通过简单的网页采集就无法获取编码后的网页内容。

应对措施:字体反爬相对与其他的反爬,他的难度属于较为初级的阶段,主要是在处理的时候比较麻烦,比较注重防御的网站,往往一个网站有多套不同的字体加密防御体系,比如 135 用 A 方案,246 用 B 方案,这个需要一定的耐心去分析字体的规律并使用 Python 解析字体文件,找出映射规律才可以解决。

推荐工具:fontTools、百度字体编辑器(http://fontstore.baidu.com/static/editor/index.html)

2.网页反爬虫—验证码

验证码是一种区分用户是计算机还是人的公共全自动程序,常见的验证码有:多位英数混合验证码、滑动验证码、点选验证码、旋转验证码等等。

应对措施:项目预算充足的情况下可以对接专业的打码平台,减少 90 % 的工作量;预算不足的情况可以使用华为云 ModelArts,不用写一行代码,就能完成模型的搭建

推荐工具:华为云 ModelArts、CC框架

3.网页反爬虫—JS 加密/混淆

前端的代码都是公开的,那么加密有意义吗?有的,通过去除代码中尽可能多的有意义的信息,比如注释、换行、空格、代码负号、变量重命名、属性重命名(允许的情况下)、无用代码的移除尽可能增加爬虫工程师阅读代码的成本。

应对措施:轻中度混淆或者混淆的代码,可以通过阅读混淆后的代码,梳理加密逻辑后扣取可运行的 Js 代码,使用 Python 库调用完成加密参数的生成;重度混淆使用 AST 语法树还原混淆的代码,去除无意义的垃圾代码,还原清晰的加密逻辑后使用 Python 库调用完成加密参数的生成。

推荐工具:AST、PyExecJS

4.APP 反爬虫

都2020年了,目前通过应用市场下载的 APP还有不加壳的吗?除了加壳防护外,常见的 APP 也应用了单向或双向证书验证,简单的中间人攻击已经无法抓到 APP 的数据包,学习 APP 逆向已经势在必行。

应对措施:APP 逆向需要学习的内容非常多,这里只针对无法抓到 APP 包做简单的总结(推荐工具:Frida、Xposed、IDA、jadx、Charles):

【单向认证和双向认证】

单向验证的情况是客户端校验证书,校验出错就无法访问

双向认证的情况是客户端校验证书的时候,服务端也要校验证书,有一端证书校验失败都无法访问数据。缺点是服务器的压力比较大

处理方法:一般是使用 JustTrustMe,原理是通过 Xpose Hook 校验的 API。

【APP不走代理—如何确定 APP 不走代理?】

(1)关闭代理服务器(fiddler等代理抓包工具)(2)使用手机访问浏览器网页访问失败,确定代理失效(3)使用APP访问,正常访问确定 APP 不走代理访问网络

处理方法:更换不基于代理类型的抓包工具(HTTP Analyzer V7--缺点没办法用在真机、HTTP Debug Pro、手机端的HttpCanary-基于VPN);hook-先反编译看看他是使用了那个框架,然后针对性的hook-菜鸡劝退;iptables 强制拦截转发

【代理检测的APP】

挂上代理之前APP访问正常,挂上代理之后APP无法使用显示网络出错等情况

(1)代理检测(hook 代理检测的方法)(2)证书检测(用 JustTrustMe )

【双向认证的APP】

双向认证的情况是客户端校验证书的时候,服务端也要校验证书,有一端证书校验失败都无法访问数据。

不过在双向认证的APP中要做到双向验证,在APP中一般要配置好服务器端验证的证书,所以在客户端中我们可以找到一个服务端的证书,我们只要在 Fiddler 中配置好这个证书就可以请求了。

ps:证书一般带有密码,需要反编译找到密码,之后导入至系统当中,再从系统中导出为 .cer 证书格式,之后在 FiddlerScript 中配置即可。

分布式爬虫都是什么?

如果你已经学习了如何编写工程化爬虫,并对它有一定的心得,那么你已经开始对爬虫架构有一定的心得了。

而分布式爬虫看着概念吓人,其实往简单的看就是将单机的爬虫分布到多台机器,主要的重点在于消息阻塞处理,日志告警、数据完整性校验等等问题。

针对亿级以下的舆情数据,可以试着学习 Scrapy + Redis + MQ + Celery 这样的组合,足以应对。

如果是针对垂直领域的数据抓取,可以将重心放在如果快而稳的获取数据上,毕竟垂直领域的数据抓取,爬虫与反爬虫的对抗是最激烈的。

学1个月爬虫就月赚6000?别被骗了,老师傅告诉你爬虫的真实情况 爬虫的四个水平,你在哪一个层次?巅峰爬虫是什么样子? 阅读详情

相关推荐

百度编辑器Ueditor增加字体的修改方法

主要介绍了百度编辑器Ueditor增加字体的修改方法,有时候我们需要为编辑器多加几种字体,那么就可以参考下面的方法,需要的朋友可以参考下

CSS中文字体的英文名称(simhei, simsun)

<br />Mac OS的一些:<br /><br /> 华文细黑:STHeiti Light [STXihei]<br /> 华文黑体:STHeiti<br /> 华文楷体:STKaiti<br /> 华文宋体:STSong<br /> 华文仿宋:STFangsong<br /> 俪黑 Pro:LiHei Pro Medium<br /> 俪宋 Pro:LiSong Pro Light<br /> 标楷体:BiauKai<br /> 苹果俪中黑:App

Captain.Nic的专栏 2486

海康读码器上位机开发避坑指南:IDMVS客户端之外,如何用C# SDK搞定扫码、数据比对与实时控制?

本文详细介绍了如何利用海康读码器的C# SDK进行二次开发,实现从基础扫码到复杂工业控制的全流程解决方案。内容涵盖SDK架构解析、多设备管理系统构建、业务逻辑与设备控制实现,以及系统集成与性能优化等关键环节,为工业自动化领域的开发者提供实用指南。

weixin_30642561的博客 550

字体编辑器,让字体设计更加便捷高效

3、改进了字体导出功能:鸟font 0.43 改进了字体导出功能,用户可以将设计好的字体导出为多种格式,包括TrueType、OpenType、PostScript等,这将极大地方便用户的使用。设计工具Birdfont发布了最新版本0.43,这款工具的发布不仅标志着鸟字体设计工具的不断完善和升级,同时也带来了更加便捷和高效的字体设计体验。作为一款专业的字体设计工具,Birdfont 0.43 的发布不仅为用户带来了更加便捷和高效的字体设计体验,同时也推动了整个字体设计行业的发展。

weixin_41888295的博客 315

11.3 海岛微电网与工业园区的构网应用

海岛微电网与工业园区配电网是构网技术下沉应用的两大典型场景。海岛微电网以构网型储能为核心,解决孤岛系统稳定性问题,需具备黑启动、多能源协调和故障穿越能力;工业园区则侧重电能质量治理、并离网无缝切换和经济优化运行。两类场景均需解决多机并联稳定性、故障特性适配和分层协同控制等关键技术。构网型变流器的电压源构建能力、自适应控制策略及飞轮储能等特殊应用,为构建高可靠性、高经济性的分布式能源系统提供了创新解决方案。

技术工作者 1086

多视图学习 (Multi-View Learning)

多视角/多视图学习(Multi-view learning)是陶大成提出的一个研究方向。我们都知道,在机器学习中样本可以用不同的特征(如图片可以用LBP、SIFT等特征)来表示,或者从不同的角度进行观察(如从前后左右观察一个对象),甚至是采用不同的传感器来观测(如RGB摄像头,Depth摄像头),这些不同的观测手段、角度或特征在多视角学习中称为“视角”。多视角学习通过对不同的视角进行统一分析和研究,希望能够得到更好的分类或聚类等等的效果。

CarpeDiem 3万+

百度字体编辑器/字体仓库

百度字体编辑器 http://fontstore.baidu.com/static/editor/index.html

MaFeng 7996

从‘全步’到‘微步’:一张图看懂步进电机细分控制,选对模式让你的项目更丝滑

本文深入解析步进电机细分控制技术,从全步到微步的演进过程,帮助工程师根据项目需求选择最优控制模式。通过对比不同细分等级的性能特点和应用场景,提供3D打印、实验室自动化等领域的黄金配置方案,实现更精准、平稳的电机控制效果。

weixin_29290259的博客 471

使用百度字体编辑器删除不必要字体,减少字体文件体积

百度字体编辑器地址:http://fontstore.baidu.com/static/editor/index.html 使用手册:http://fontstore.baidu.com/static/editor/doc/index.html#introduce 为什么要编辑字体文件?   只所以想要编辑庞大的字体文件的原因,是因为我们可爱的射击湿,想要让数字表现的更妖娆多姿一点,注意:只是数字...

weixin_33834910的博客 743

21天教你学会PCIe专栏(21)--总结和展望

回顾整个课程的主要内容和知识点总结PCIe技术的发展历程和现状展望PCIe技术的未来发展趋势和应用方向分享学习心得和实践经验1.1 课程回顾基础知识:了解了PCIe的基本概念、发展历程、标准和规范。分层结构:学习了PCIe的物理层、数据链路层和事务层的结构和功能。功能和特性:掌握了PCIe的热插拔、电源管理、多功能设备等高级功能。高速接口技术:学习了PCIe 4.0、5.0和未来趋势。实际案例分析:分析了GPU加速器和存储设备的PCIe设计和优化。常见问题和解决方案。

xiaoheshang_123的博客 672

ThingsBoard教程(十六):RPC部件的使用

前言 各位读者好,截止目前,ThingsBoard系列文章已经做了十篇,分别是 ThingsBoard教程(一):ThingBoard介绍及安装 ThingsBoard教程(二):租户,租户配置,部件组模块的使用 ThingsBoard教程(三):系统设置模块的使用 ThingsBoard教程(四):规则链简介与操作 ThingsBoard教程(五):客户,资产管理 ThingsBoard教程(六):设备管理 ThingsBoard教程(七):模拟设备遥测 ThingsBoard教程(八):自定义UI T

知无涯 4580

学习Python爬虫前先看这篇文章,防止自己以后踩坑_百度字体编辑器 python

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取。

2401_84140519的博客 957

LVGL core theme主题管理(lv_theme.c)

如果打开宏,主题的初始化是在显示设备注册时完成的。整个themes的实现放在目录下面。这里一共有三套主题(basic、default和mono)可供选择或者参考。源码中默认对接的是 default 主题,所以在中,看到的是调用default主题的接口。也就是说,如果需要更换主题,把这里面的接口换掉就可以了。或者要重新做一套主题,参考这些实现修改也就可以了。虽说有三套主题,但逻辑流程是一样的。主要完成两个工作:构造lv_theme_t结构体和初始化默认样多备用(style_init函数内实现)。构造。....

Bigan(安)的博客 3411

学习Python爬虫前先看这篇文章,防止自己以后踩坑

应对措施:字体反爬相对与其他的反爬,他的难度属于较为初级的阶段,主要是在处理的时候比较麻烦,比较注重防御的网站,往往一个网站有多套不同的字体加密防御体系,比如 135 用 A 方案,246 用 B 方案,这个需要一定的耐心去分析字体的规律并使用 Python 解析字体文件,找出映射规律才可以解决。iptables 强制拦截转发。有的,通过去除代码中尽可能多的有意义的信息,比如注释、换行、空格、代码负号、变量重命名、属性重命名(允许的情况下)、无用代码的移除尽可能增加爬虫工程师阅读代码的成本。

Python966的博客 431

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

学习Python爬虫前先看这篇文章,防止自己以后踩坑_百度字体编辑器 python(1)

① 2000多本Python电子书(主流和经典的书籍应该都有了)② Python标准库资料(最全中文版)③ 项目源码(四五十个有趣且经典的练手项目及源码)④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)⑤ Python学习路线图(告别不入流的学习)我们常见的应用场景简单举例如下,**3.论坛或者微博的舆情监控。**用数据采集技术来监测搜索引擎、新闻门户、论坛、博客、微博、微信、报刊、视频的舆情。

2401_84140519的博客 866

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

网络数据采集概述:网络爬虫的应用与实践

网络爬虫(Web Crawler)是一种自动访问互联网的程序,旨在从网页中提取信息。爬虫在互联网上浏览、抓取网页内容,并将其存储到数据库中以供后续分析与处理。这些信息可以是文本、图片、视频等任何形式的数据。

yfmsx的博客 2195

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python网络爬虫(第一章/共三章:网络爬虫库、robots.txt规则(防止犯法)、查看获取网页源代码)

(第二步:浏览器驱动)

2302_78022640的博客 1770

python网络爬虫小项目(爬取评论)超级简单

学习python网络爬虫的完整路径:(第一章)python网络爬虫(第一章/共三章:网络爬虫库、robots.txt规则(防止犯法)、查看获取网页源代码)-优快云博客(第二章)python网络爬虫(第二章/共三章:安装浏览器驱动,驱动浏览器加载网页、批量下载资源)-优快云博客(第三章)python网络爬虫(第三章/共三章:驱动浏览器窗口界面,网页元素定位,模拟用户交互(输入操作、点击操作、文件上传),浏览器窗口切换,循环爬取存储)-优快云博客(额外加一个小项目)即此篇文章。

2302_78022640的博客 1671

【Python爬虫】学习Python必学爬虫,这篇文章带您了解Python爬虫,Python爬虫详解!!!

以上就是Python爬虫的详细讲解,包括基本概念、常用库、基本流程和示例代码。通过使用Python爬虫,您可以轻松地从网站获取所需的数据,并将其存储在本地或发送到其他系统进行进一步处理。在处理反爬虫机制时,您可以采取一些措施来绕过它们,例如使用代理、限制请求频率等。requests:用于发送HTTP请求。:用于解析HTML内容。Selenium:用于模拟浏览器行为,以绕过一些反爬虫机制。pandas:用于处理和存储提取到的数据。# requests库# BeautifulSoup库。

2401_85855266的博客 2136

14.网络爬虫—selenium详讲

🧾 🧾Selenium是一个自动化测试工具,用于测试Web应用程序。它可以模拟用户在Web浏览器中的操作,如点击链接、填写表单、提交表单等。Selenium的主要特点是灵活性和可扩展性,它可以与其他工具和框架集成,如JUnitTestNGMavenAnt等。Selenium的核心组件包括和。Selenium IDE是一个浏览器插件,用于录制和回放测试脚本`;Selenium WebDriver是一个自动化测试框架,用于编写和执行测试脚本Selenium Grid是一个分布式测试框架,

weixin_50804299的博客 7014

python 爬虫-(2)认识爬虫

前言 这篇文章主要是介绍什么是网络爬虫,以及网络爬虫有什么作用,我学网络爬虫当时也是因为兴趣才学的,总感觉这东西很神奇有趣。并且学习爬虫也并不是很长时间,所以会以一个小白的口吻来介绍网络爬虫。这篇文章可以作为学习爬虫前的一个了解知识。 文章目录前言什么是爬虫产生的原因爬虫的工作原理爬虫程序为什么要用Python编写如何开始学习爬虫 什么是爬虫 **爬虫**又名网络爬虫、网页蜘蛛、网络机器人等等。我们都知道互联网的逻辑雏形就是像蜘蛛织的网一样,那么网络爬虫就是一个通过程序编程好之后自己在网络中获取资源的小虫子

毛虫-strive-blogs 738

python网络爬虫(第二章/共三章:安装浏览器驱动,驱动浏览器加载网页、批量下载资源)

(学习第一步在这里)

2302_78022640的博客 1403

️️ 爬虫技术初探:如何安全高效地采集网络信息

在数据驱动的时代,网络信息采集已成为数据分析、市场研究和竞争情报不可或缺的一部分。本篇博客深入探讨了网络爬虫技术的基础知识、实践技巧及其在保护隐私和遵守法律框架下的应用方法。从基础的爬虫构建到高级的反反爬虫策略,无论你是编程新手还是资深开发者,都能在这篇文章中找到有价值的信息。我们将通过Python示例代码,详细介绍如何安全高效地采集网络数据,同时确保遵守网站的robots.txt协议和不侵犯用户隐私。词条:网络爬虫、数据采集、Python爬虫教程、反爬虫策略、网络信息采集。关键词解释网络爬虫。

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 1万+

人人都会用的网络爬虫

通过这篇文章,你可以了解到网络爬虫的基本知识,三种爬虫方法以及如何处理网站反爬策略。

程序员鱼乐 547
上一篇: 利用Python实现录音播放并翻译,真正的实时进行翻译
下一篇: Python爬虫实战,采集高德地图信息
Python_sn
博客等级 码龄6年 324粉丝 290原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值