当前位置: 首页 > news >正文

第一天:爬虫介绍

       每天上午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

相关文章:

  • 设置ollama接口能外部访问
  • maven导入spring框架
  • vue3读取webrtc-stream 视频流
  • Docker+Jenkins自动化部署SpringBoot项目【详解git,jdk,maven,ssh配置等各种配置,附有示例+代码】
  • ​矩阵元素的“鞍点”​
  • Python爬虫实战:获取51job职位信息,并做数据分析
  • el-table封装一个自定义列配置表格组件(vue3开箱即用)
  • 高速存储文章目录
  • 称呼计算器:智能科技,简化您的计算生活
  • python后端调用Deep Seek API
  • ffmpeg基本用法
  • 图数据库neo4j进阶(一):csv文件导入节点及关系
  • bitcoinjs学习1—P2PKH
  • 【开源免费】基于SpringBoot+Vue.JS工作流程管理系统(JAVA毕业设计)
  • ubuntu20.04+RTX4060Ti大模型环境安装
  • SpringBoot实战:高效获取视频资源
  • chrome://version/
  • c++ 多线程知识汇总
  • 学习笔记-人脸识别相关编程基础
  • Flutter_学习记录_基本组件的使用记录_2
  • 人民日报读者点题·共同关注:今天我们为什么还需要图书馆?
  • 新华时评:中国维护国际经贸秩序的立场坚定不移
  • “拼好假”的年轻人,今年有哪些旅游新玩法?
  • 巴基斯坦空袭印度多地空军基地,巴战机进入印领空
  • 被取消总统候选人资格,金文洙:将采取政治法律措施讨回公道
  • 玉渊谭天丨中方为何此时同意与美方接触?出于这三个考虑