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)在储存或分析数据方面

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

相关推荐
以后不吃煲仔饭7 分钟前
Java基础夯实——2.7 线程上下文切换
java·开发语言
进阶的架构师7 分钟前
2024年Java面试题及答案整理(1000+面试题附答案解析)
java·开发语言
前端拾光者11 分钟前
利用D3.js实现数据可视化的简单示例
开发语言·javascript·信息可视化
程序猿阿伟13 分钟前
《C++ 实现区块链:区块时间戳的存储与验证机制解析》
开发语言·c++·区块链
傻啦嘿哟31 分钟前
如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
开发语言·python·excel
大数据编程之光35 分钟前
Flink Standalone集群模式安装部署全攻略
java·大数据·开发语言·面试·flink
初九之潜龙勿用35 分钟前
C#校验画布签名图片是否为空白
开发语言·ui·c#·.net
B站计算机毕业设计超人37 分钟前
计算机毕业设计SparkStreaming+Kafka旅游推荐系统 旅游景点客流量预测 旅游可视化 旅游大数据 Hive数据仓库 机器学习 深度学习
大数据·数据仓库·hadoop·python·kafka·课程设计·数据可视化
Dola_Pan1 小时前
C语言:数组转换指针的时机
c语言·开发语言·算法
ExiFengs1 小时前
实际项目Java1.8流处理, Optional常见用法
java·开发语言·spring