第一天:爬虫介绍

embedded/2025/2/13 20:34:34/

       每天上午9点左右更新一到两篇文章到专栏《Python爬虫训练营》中,对于爬虫有兴趣的伙伴可以订阅专栏一起学习,完全免费。

       键盘为桨,代码作帆。这趟为期30天左右的Python爬虫特训即将启航,每日解锁新海域:从Requests库的浪花到Scrapy框架的深流,从反爬迷雾中的破局到数据清洗的澄澈。我们拆解网页结构如同解读星图,让XPath与正则表达式化作导航罗盘。每个深夜的代码调试,终将凝结成破晓时的数据宝藏。训练营不设码头,结营之日,正是你独自远征星辰大海的起点。

文章目录

1. 什么是爬虫

2. 有什么作用?

3. 应用领域

4. 业界的情况

5. 合法性

6. 反爬虫

7. 选择一门语言

8. 爬虫基本套路

9. Python 爬虫

1. 什么是爬虫

网络爬虫也叫网络蜘蛛,如果把互联网比喻成⼀个蜘蛛网,那么爬虫就是在网上爬来爬去的蜘蛛,爬虫程序通过请求url地址,根据响应的内容进行解析采集数据,比如:如果响应内容是html,分析dom结构,进行dom解析、或者正则匹配,如果响应内容是xml/json数据,就可以转数据对象,然后对数据进行解析。

2. 有什么作用?

通过有效的爬虫手段批量采集数据,可以降低人工成本,提高有效数据量,给予运营/销售的数据支撑, 加快产品发展。

3. 应用领域

批量采集某个领域的招聘数据,对某个行业的招聘情况进行分析 批量采集某个行业的电商数据,以分析出具体热销商品,进行商业决策 • 采集目标客户数据,以进行后续营销 批量爬取腾讯动漫的漫画,以实现脱网本地集中浏览 开发⼀款火车票抢票程序,以实现自动抢票 ...

4. 业界的情况

目前互联网产品竞争激烈,业界大部分都会使用爬虫技术对竞品产品的数据进行挖掘、采集、⼤数据分析,这是必备手段,并且很多公司都设立了爬虫工程师的岗位。

5. 合法性

爬虫是利用程序进行批量爬取网页上的公开信息,也就是前端显示的数据信息。因为信息是完全公开的,所以是合法的。其实就像浏览器⼀样,浏览器解析响应内容并渲染为页面,而爬虫解析响应内容采 集想要的数据进行存储。

6. 反爬虫

爬虫很难完全的制止,道高⼀尺魔高⼀丈,这是⼀场没有硝烟的战争,码农VS码农 反爬⾍⼀些⼿段:

合法检测:请求校验(useragent,referer,接⼝加签名,等)。

小黑屋:IP/用户限制请求频率,或者直接拦截。

投毒:反爬虫最高境界可以不用拦截,拦截是⼀时的,投毒返回虚假数据,可以误导竞品决策。

7. 选择一门语言

爬虫可以用各种语言写, C++, Java都可以, 为什么要Python? 首先用C++搞网络开发的例子不多(可能是我见得太少) 然后由于Oracle收购了Sun, Java目前虽然在 Android开发上很重要, 但是如果Google官司进展不顺利, 那么很有可能用Go语言替代掉Java来做 Android开发. 在这计算机速度高速增长的年代里, 选语言都要看他爹的业绩, 真是稍不注意就落后于时代.。

随着计算机速度的高速发展, 某种语言开发的软件运行的时间复杂度的常数系数已经不像以前那么重要, 我们可以越来越偏爱为程序员打造的而不是为计算机打造的语言. 比如Ruby这种传说中的纯种而又飘逸的的OOP语言, 或者Python这种稍严谨而流行库又非常多的语言, 都大大弱化了针对计算机运行速度而打造的特性, 强化了为程序员容易思考而打造的特性. 所以我选择Python。

8. 爬虫基本套路

1)基本流程

     *目标数据
     *来源地址
     *结构分析
     *实现构思
     *操刀编码

2)基本手段

*破解请求限制

          *请求头设置,如:useragant为有效客户端
          *控制请求频率(根据实际情景)
          *IP代理
          *签名/加密参数从html/cookie/js分析


*破解登录授权

          *请求带上用户cookie信息


*破解验证码

          *简单的验证码可以使用识图读验证码第三方库


*解析数据

          *HTML Dom解析

               *正则匹配,通过的正则表达式来匹配想要爬取的数据,如:有些数据不是在html 标签                      里,而是在html的script 标签的js变量中

               *使用第三方库解析html dom,比较喜欢类jquery的库      

         *数据字符串

               *正则匹配(根据情景使用)

               *转 JSON/XML 对象进行解析

9. Python 爬虫

*python爬虫的优势

       *python语法易学,容易上手
       *社区活跃,实现方案多可参考
       *各种功能包丰富
       *少量代码即可完成强大功能


*涉及模块包

     *请求

            *urllib
            *requests
     *多线程

           *threading
     *正则

           *re
     *json解析

          *json
     *html dom解析

          *beautiful soup
     *lxml

          *xpath
     *操作浏览器

          *selenium


http://www.ppmy.cn/embedded/161960.html

相关文章

【React】如何画一个箭头

下载 react-xarrows&#xff0c;官方文档地址 npm i react-xarrows基本使用 <Xarrow start"box1" end"box2" /> <Xarrow start"box2" end"box3" />基本属性 <Xarrowstart"box1"end"box2"headSi…

使用sunshine和moonlight串流时的音频输出问题

设备&#xff1a;电脑和平板串流&#xff0c;把平板当副屏使用 1.如果启用安装steam音频驱动程序&#xff0c;则平板有声&#xff0c;电脑无声&#xff0c;在moonlight端可以设置平板和电脑同时发声&#xff0c;但是有点卡 2.只想电脑发声&#xff0c;平板无声 禁用安装steam…

数字孪生遭遇 “DeepSeek 之问”:谁在批量制造昂贵玩具?

“如果数字孪生不能预判设备故障&#xff0c;和 3D 动画有什么区别&#xff1f;”DeepSeek 技术总监的犀利发问&#xff0c;揭开了行业的遮羞布。某券商研报显示&#xff0c;2023 年数字孪生项目平均 ROI&#xff08;投资回报率&#xff09;仅为 0.7&#xff0c;这意味着多数企…

PostCSS和PurgeCSS如何具体应用于我的项目?

在你的项目中应用 PostCSS 和 PurgeCSS 可以显著提高 CSS 的性能和可维护性。以下是如何具体在 React 项目中使用这两个工具的步骤。 1. 使用 PostCSS 安装 PostCSS 及插件 首先,你需要安装 PostCSS 和相关的插件。使用以下命令安装: npm install postcss postcss-loader…

从零开始认识大语言模型(LLM)

“AI小美好——聚焦科技、商业、职场。前沿资讯&#xff0c;实用干货&#xff0c;邂逅更美好的自己&#xff01;” 在当今数字化时代&#xff0c;语言不仅是人类交流的工具&#xff0c;更是信息传递的核心。随着人工智能技术的飞速发展&#xff0c;大语言模型逐渐走进了我们的…

云原生周刊:DeepSeek 颠覆人工智能

开源项目推荐 Ollama Ollama 是一个开源的 AI 工具&#xff0c;旨在为用户提供简单而强大的本地部署语言模型解决方案。它支持直接在本地计算机上运行多个预训练的语言模型&#xff0c;能够提供与云端类似的体验&#xff0c;但无需依赖外部服务器或网络连接。 Ollama 的主要…

17.垃圾回收器

GC分类与性能指标 垃圾收集器没有在规范中进行过多的规定&#xff0c;可以由不同的厂商、不同版本的JVM来实现。 由于JDK的版本处于高速迭代过程中&#xff0c;因此Java发展至今已经衍生了众多的GC版本。 从不同角度分析垃圾收集器&#xff0c;可以将GC分为不同的类型。 Jav…

Vue3组件通信全攻略:8种传值方式详解

前言 在Vue3开发中&#xff0c;组件通信是构建复杂应用的核心技能。本文将全面讲解Vue3支持的8种组件传值方式&#xff0c;助你轻松应对各种场景&#xff01; 一、Props父传子 适用场景&#xff1a;父组件向直接子组件传递数据 <!-- 父组件 --> <template><C…