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

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

爬虫是什么?

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

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

爬虫的应用领域有哪些?

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

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 这样的组合,足以应对。

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

Python 全栈工程师必备面试题 300 道(2020 版) Python 全栈工程师核心面试 300 问深入解析(2020 版) Python 面试不仅需要掌握 Python 基础知识和高级语法,还会涉及网络编程、web 前端后端、数据库、网络爬虫、数据解析、数据分析和数据可视化等各方面的核心知识。针对网上资料参差不齐,并且自己上网寻找费时费力,效果还不好的问题,进行该 Chat 创作。 本人结合自己多年的开发经验,同时汲取网络中的精华,本着打造全网最全面... 阅读详情

相关推荐

【STM32篇】DRV8425驱动步进电机

【STM32篇】在上篇文章中使用了HR4988实现了步进电机的驱动,在实际运用过程,4988驱动步进电机会存在电机噪音太大的现象。本次将向各位友友介绍一个驱动简单且非常静音的一款步进电机驱动IC。

we_long的博客 3068

python 简单字体解密

目录 前言 分析过程 ①查看情况,可以看见字体是加密过的 ②查看网页源代码 ③解码 ④保存成woff文件 ⑤查看woff文件 ⑥使用TTFont模块将之前的woff文件保存成xml文件 ⑦查看xml文件信息 ⑦找到规律或者是联系 ⑧构造映射关系 ⑨获取html网页信息,将加密内容一一替换 具体实现细节 ①bese64解码 ②使用TTFont保存成xml文件 ③获取每个字体的unicode编码 ④获取四个坐标 尾声 前言 这篇文章主要是讲解简单的字体解...

一些小问题 1939

告别环境报错:用Pycharm一站式搞定Superset 3.0.0二次开发环境(Windows/Mac通用)

本文详细介绍了如何使用Pycharm一站式搭建Apache Superset 3.0.0的二次开发环境,涵盖Windows和Mac平台。通过虚拟环境配置、依赖管理、数据库初始化及前后端协同开发等步骤,帮助开发者高效解决环境报错问题,提升开发效率。特别适合需要进行Superset二次开发的工程师参考。

weixin_42549496的博客 316

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

爬虫就是模拟人的访问操作来获取网页/App数据的一种程序。

m0_59162248的博客 813

科研绘图神器Origin中文版安装后还是英文?手把手教你三步搞定界面汉化

本文详细介绍了Origin软件安装后界面仍显示英文的解决方案,包括基础语言切换、注册表修改和序列号破解三种方法。通过逐步指导,帮助用户快速实现界面汉化,提升科研绘图效率。特别针对教育版用户提供了有效的语言锁定解除方案。

weixin_42524708的博客 1131

永磁同步电机自抗扰控制ADRC(位置环/速度环控制器)Matlab/Simulink仿真(S-Function)

ESO是ADRC的核心,其作用是跟踪被控对象的输出,同时给出受控对象的各阶状态变量以及系统总扰动的实时估计,将其补偿到控制器中,实现动态补偿线性化。NLSEF采用非线性函数把TD产生的跟踪及微分信号与ESO给出的状态变量估计值之间的误差进行非线性组合得到初级控制量,然后同总扰动的补偿量一起生成最终的控制信号。自抗扰控制(ADRC)技术的核心思想是将简单的积分串联型视为标准模型,把系统模型中不同于标准型的部分和外部干扰之和视为总扰动,并将其扩张为一个新的状态。看作系统内外部扰动之和。令一个高阶状态变量为。

m0_66341377的博客 7615

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

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

2401_84140519的博客 957

深入解析安卓/Linux固件:从DTB到DTS的反编译实战

本文详细介绍了如何从安卓/Linux设备固件中提取并反编译DTB文件,将其转换为可读的DTS源码。通过实战步骤,包括拆解boot.img、处理resource.img以及使用dtc工具,帮助开发者深入理解设备硬件配置,为固件定制、驱动调试和系统移植提供关键支持。

weixin_29274337的博客 339

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

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

2401_84140519的博客 866

使用TensorFlow搭建FNN(全连接神经网络)的基本步骤

提示:转载请注明出处,若本文无意侵犯到您的合法权益,请及时与作者联系。 目录 一、定义神经网络的输入输出 二、搭建神经网络 1、定义一个神经层中的权重 2、定义一个神经层中的阈值 3、定义一个神经层中的激活函数 4、组合神经层为神经网络 三、搭建损失函数和优化器 1、搭建损失函数 首先介绍第一个函数这其中用到的共同的函数为 2、定义优化器 四、训练神经网络 全连接神经网络的网络结构如下: 一、定义神经网络的输入输出 神经网络最擅长的工作就是模拟非线性函数,即一个复杂的高..

qq_41959920的博客 4070

lammps案例:聚乙烯和石墨烯界面pull out模拟

大家好,我是小马老师。 本文介绍lammps模拟计算界面结合力的一个案例。 本案例参考论文《The interfacial mechanical properties of functionalized graphene- polymer nanocomposites》,对论文作者表示感谢。 模型共分2层,上层为聚乙烯模型,下次为单层石墨烯,模拟过程共分3部分:建模、弛豫、拉伸。 (1)建模 使用MS建立聚乙烯和石墨烯模型,具体方法可参考之前的推文,使用build layer方法建立聚乙烯和石墨烯组合模型,

lammps_jiayou的博客 3495

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

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

yfmsx的博客 2195

pt100和max31865测室温跳变比较大,会从23.04跳到23.47,23.75反复跳变超过了0.5的误差范围,在VDD和GND之间加上0.1和10的滤波电容也不行,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2087

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

(第二步:浏览器驱动)

2302_78022640的博客 1770

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

人人都会用的网络爬虫

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

程序员鱼乐 547

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

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

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

学习python爬虫看一篇就足够了之爬取《太平洋汽车》论坛及点评实战爬虫大全

前言: 这也是一篇毕业论文的数据爬虫,我第一次看见《太平洋汽车》的点评信息时,检查它的网页元素,发现并没有像《汽车之家》那样的字体反爬技术,所有就初步判断它没有很强的反爬虫技术,大不了就使用selenium库自动化实现爬虫呗。但是我确因为这样一个网页写了6种爬虫手段,一直在与它的反爬虫技术对抗,虽然最后我完成了任务,但是感觉并不是很完美,和其他网站的爬虫相比起来,它的运行速度有点慢,也不敢快。就这样收手吧,通过它也学到了很多的知识,如果你也想学习爬虫,这篇文章可以帮你解决90%以上的网页,简单的梳理一下吧

阿优乐扬的博客 9738

【Python入门】破解网络迷宫:Python网络爬虫中的验证码处理策略

在这篇文章中,我们学习了网络爬虫中验证码处理的几种策略,并通过实际的例子来演示了如何处理验证码。📋 验证码处理是Python网络爬虫中的一项重要技能,它让你能够在遵守规则的前提下获取所需数据。

墨夶的博客 430

Python爬虫学习之旅:从入门到精通,要学多久?_python爬虫自学要多久

通过学习和实践实际的案例,你将进一步提升你的爬虫技术,并为处理更复杂的数据和任务做好准备。除此之外,你还可以将你的实战项目添加到你的作品集中,这将有助于你在求职或者项目申请中展示你的实际能力和经验。了解网站的结构、页面的组成以及你所需要的数据在网站中的位置,这将有助于你制定合适的爬取策略。入门阶段是学习Python爬虫的关键阶段,在这个阶段,你需要掌握Python的基础知识和相关的库和工具。在这个阶段,你将学习更高级的技术,如正则表达式、XPath和CSS选择器等,以帮助你更精确地定位和提取页面中的数据。

2401_87361571的博客 2235

Python爬虫代码分享01——(re 正则表达式爬取数据)

爬虫就一段模拟用户上网并从互联网中获取信息的程序人们正常上网过程:通过浏览器提交请求给网站服务器(打开浏览器输入网址或者通过搜索引擎搜索打开网址) --> 下载网页代码 --> 浏览器解析成页面 --> 用户浏览爬虫爬取信息的过程:模拟浏览器发送请求获取网页代码 --> 按照代码设置提取有用的数据 --> 存放于数据库或文件中。

Janice01的博客 1397
上一篇: 助你掌握Python爬虫技能,避免掉进陷阱
下一篇: ChatGPT,先养肥了卖课的
AI大模型学习
博客等级 码龄4年 2471粉丝 620原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值