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

python爬虫——入门

一、概念

万维网之所以叫做网,是因为通过点击超链接或者进入URL,我们可以访问任何网络资源,从一个网页跳转到另一个网页,所有的相关资源连接在一起,就形成了一个网。

而爬虫呢,听名字就让人想起来一个黏糊糊的蠕虫或者蜘蛛等,实际上,爬虫本质上即使一个程序蜘蛛,按照一定的规则,自动沿着这张网抓取上面的信息。

用处:

  • 收集目标信息:比如爬取招聘网站,找出给python工程师的薪资排在前10的本地公司,你可以用它来比较价格等。(个人)
  • 舆情监控
  • 市场调研
  • 搜索引擎

二、安装。

python直接去官网下载即可,python编辑器我这里用的是pycharm软件。

安装教程直接百度即可。

三、爬虫流程

我们都听说过,爬虫学的好,牢饭吃的早。那么我们应该怎么正确利用爬虫技术呢?哪些事情是我们能做的,哪些是我们不能做的。

那接下来我们就来聊一聊爬虫的流程大概是什么样子的!

  1. 获取网页内容:我们会通过代码给一个网站服务器发送请求,它会返回给我们网页上的内容。在我们平时用浏览器访问网页内容时,本质上也是给网站服务器发送一个请求,服务器返回网页内容。(只不过,浏览器还会进行一个额外的步骤,就是把内容渲染成直观优美的页面给用户进行展现,而用程序获得的内容更加原始)
  2. 解析网页内容:在上一个步骤,我们可以获取整个网页的内容,那太多太复杂了,而我们其实根本不想要看到这么多信息,这个时候我们需要进行筛选。比如去tb买东西,我们可能只关注商品种类和价格,对于活动信息或者用户评价等内容不感兴趣。所以需要对内容进行解析,把想要的数据提取出来。
  3. 储存或分析数据:取决于具体需求。比如你一开始是为了收集数据集,那这一步骤可能就是把数据存储进数据库;如果你一开始是为了分析数据趋势,那这一步骤可能就是把数据做成可视化图表;如果你一开始是为了做舆情监控,这一步骤可能就是用AI做文本情绪分析。

爬虫大概的流程讲完了,那么我们来讲讲怎么避免吃牢饭!!!

为了能够成为社会主义好青年,请你务必遵守一些规则:

  • 不要爬取共鸣隐私数据
  • 不要爬取受著作权保护的内容
  • 不要爬取国家事务、国防建设、尖端科学技术领域的计算机系统等

除了以上红线不能跨过以外,还有一些事情是需要我们注意的。

  • 爬虫的请求数量和频率不能过高,否则可能无异于DDos攻击。(DDos攻击就是通过给服务器发送海量高频的请求,让网站资源被耗尽,导致其无法服务其他正常用户)
  • 如果网站明显做出了反爬限制,比如有些内容要登陆后才可查看,或是有验证码等限制机器的机制,就不要去强行突破了。
  • 你可以通过查看网站的robots.txt文件了解可爬取的网页路径范围,这个文件会知名哪些网页允许被爬取,哪些不允许被爬取,有些还会专门列出针对搜索引擎爬虫的许可范围。

四、需要学习哪些内容呢?

(1)在获取网页内容方面

  • HTTP请求,来获得网页内容
  • python的Requests库,通过它就可以用python代码简单优雅地发送HTTP请求。

(2)在解析网页内容方面

  • HTML网页结构(因为发送请求后获得的内容,很多情况下回事HTML格式)
  • python的Beautiful Soup库,帮助解析获取到的HTML内容,提取信息

(3)在储存或分析数据方面

学什么,根据具体需求而异。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • leetcode509:斐波那契数
  • 递归实现组合型枚举
  • 机器学习概述,深度学习,人工智能,无监督学习,有监督学习,增量学习,预处理,回归问题,分类问题
  • Redis篇一:初识Redis
  • 1.XV6环境配置
  • 20240824给飞凌OK3588-C的核心板刷Ubuntu22.04并安装iperf3测试网速
  • 怎样更改电脑的MAC地址?
  • leetcode343:整数拆分
  • 传统网络编程有什么问题
  • 前端开发工程师面试整理-ES6+的新特性
  • 测试资料4444
  • 获取当前路由器的外网IP(WAN IP)
  • 精粹CSS伪类::enabled与:disabled的优雅应用
  • Python中网络请求中Retry策略实现方式例子解析
  • i.MX6裸机开发(9):CCM时钟控制模块
  • 收藏网友的 源程序下载网
  • 《Java编程思想》读书笔记-对象导论
  • 2019.2.20 c++ 知识梳理
  • css属性的继承、初识值、计算值、当前值、应用值
  • Java Agent 学习笔记
  • java8 Stream Pipelines 浅析
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • TypeScript实现数据结构(一)栈,队列,链表
  • 测试开发系类之接口自动化测试
  • 分布式任务队列Celery
  • 分布式事物理论与实践
  • 聊聊hikari连接池的leakDetectionThreshold
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 那些被忽略的 JavaScript 数组方法细节
  • 普通函数和构造函数的区别
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 使用权重正则化较少模型过拟合
  • 06-01 点餐小程序前台界面搭建
  • zabbix3.2监控linux磁盘IO
  • 阿里云ACE认证学习知识点梳理
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (2.2w字)前端单元测试之Jest详解篇
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (三)Honghu Cloud云架构一定时调度平台
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)SpringBoot3---尚硅谷总结
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)人的集合论——移山之道
  • .apk文件,IIS不支持下载解决
  • .env.development、.env.production、.env.staging
  • .Net Redis的秒杀Dome和异步执行
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)