Python网络爬虫相关基础概念,新手必看!

卫衣 / 双肩包 / T 恤/羽绒服等任选,下单送 CSDN 年卡 程序员周边任选一款实物,直接赠送 CSDN 会员年卡+ Coding Plan,写代码学习装备一起拿下 立即抢购

1. 前言

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。

2. 认识爬虫

我们所熟悉的一系列搜索引擎都是大型的网络爬虫,比如百度、搜狗、360浏览器、谷歌搜索等等。每个搜索引擎都拥有自己的爬虫程序,比如 360 浏览器的爬虫称作 360Spider,搜狗的爬虫叫做 Sogouspider。
 

python爬虫


百度搜索引擎,其实可以更形象地称之为百度蜘蛛(Baiduspider),它每天会在海量的互联网信息中爬取优质的信息,并进行收录。当用户通过百度检索关键词时,百度首先会对用户输入的关键词进行分析,然后从收录的网页中找出相关的网页,并按照排名规则对网页进行排序,最后将排序后的结果呈现给用户。在这个过程中百度蜘蛛起到了非常想关键的作用。

百度的工程师们为“百度蜘蛛”编写了相应的爬虫算法,通过应用这些算法使得“百度蜘蛛”可以实现相应搜索策略,比如筛除重复网页、筛选优质网页等等。应用不同的算法,爬虫的运行效率,以及爬取结果都会有所差异。

3. 爬虫分类

爬虫可分为三大类:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫。

通用网络爬虫:是搜索引擎的重要组成部分,上面已经进行了介绍,这里就不再赘述。通用网络爬虫需要遵守 robots 协议,网站通过此协议告诉搜索引擎哪些页面可以抓取,哪些页面不允许抓取

robots 协议:是一种“约定俗称”的协议,并不具备法律效力,它体现了互联网人的“契约精神”。行业从业者会自觉遵守该协议,因此它又被称为“君子协议”。

聚焦网络爬虫:是面向特定需求的一种网络爬虫程序。它与通用爬虫的区别在于,聚焦爬虫在实施网页抓取的时候会对网页内容进行筛选和处理,尽量保证只抓取与需求相关的网页信息。聚焦网络爬虫极大地节省了硬件和网络资源,由于保存的页面数量少所以更新速度很快,这也很好地满足一些特定人群对特定领域信息的需求。

增量式网络爬虫:是指对已下载网页采取增量式更新,它是一种只爬取新产生的或者已经发生变化网页的爬虫程序,能够在一定程度上保证所爬取的页面是最新的页面。

4. 爬虫应用

随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战,因此爬虫应运而生,它不仅能够被使用在搜索引擎领域,而且在大数据分析,以及商业领域都得到了大规模的应用。

1) 数据分析

在数据分析领域,网络爬虫通常是搜集海量数据的必备工具。对于数据分析师而言,要进行数据分析,首先要有数据源,而学习爬虫,就可以获取更多的数据源。在采集过程中,数据分析师可以按照自己目的去采集更有价值的数据,而过滤掉那些无效的数据

2) 商业领域

对于企业而言,及时地获取市场动态、产品信息至关重要。企业可以通过第三方平台购买数据,比如贵阳大数据交易所、数据堂等,当然如果贵公司有一个爬虫工程师的话,就可通过爬虫的方式取得想要的信息。

5. 爬虫是一把双刃剑

爬虫是一把双刃剑,它给我们带来便利的同时,也给网络安全带来了隐患。有些不法分子利用爬虫在网络上非法搜集网民信息,或者利用爬虫恶意攻击他人网站,从而导致网站瘫痪的严重后果。关于爬虫的如何合法使用,推荐阅读《网络爬虫是否合法》。
 

python爬虫教程


为了限制爬虫带来的危险,大多数网站都有良好的反爬措施,并通过 robots.txt 协议做了进一步说明,下面是淘宝网 robots.txt 的内容:

1

2

3

4

5

6

7

8

9

User-agent: Baiduspider

Disallow: /baidu Disallow: /s?

Disallow: /ulink?

Disallow: /link?

Disallow: /home/news/data/

Disallow: /bh

.....

User-agent: *

Disallow: /

从协议内容可以看出,淘宝网对不能被抓取的页面做了规定。因此大家在使用爬虫的时候,要自觉遵守 robots 协议,不要非法获取他人信息,或者做一些危害他人网站的事情。

6. 为什么用Python做爬虫

首先您应该明确,不止 Python 这一种语言可以做爬虫,诸如 PHP、Java、C/C++ 都可以用来写爬虫程序,但是相比较而言 Python 做爬虫是最简单的。下面对它们的优劣势做简单对比:

PHP:对多线程、异步支持不是很好,并发处理能力较弱;Java 也经常用来写爬虫程序,但是 Java 语言本身很笨重,代码量很大,因此它对于初学者而言,入门的门槛较高;C/C++ 运行效率虽然很高,但是学习和开发成本高。写一个小型的爬虫程序就可能花费很长的时间。

而 Python 语言,其语法优美、代码简洁、开发效率高、支持多个爬虫模块,比如 urllib、requests、Bs4 等。Python 的请求模块和解析模块丰富成熟,并且还提供了强大的 Scrapy 框架,让编写爬虫程序变得更为简单。因此使用 Python 编写爬虫程序是个非常不错的选择。

7. 编写爬虫的流程

爬虫程序与其他程序不同,它的的思维逻辑一般都是相似的, 所以无需我们在逻辑方面花费大量的时间。下面对 Python 编写爬虫程序的流程做简单地说明:

  • 先由 urllib 模块的 request 方法打开 URL 得到网页 HTML 对象。
  • 使用浏览器打开网页源代码分析网页结构以及元素节点
  • 通过 Beautiful Soup 或则正则表达式提取数据
  • 存储数据到本地磁盘或数据库。

最后这里给大家免费分享一份Python学习资料,包含了视频、源码、课件,希望能够帮助到那些不满现状,想提示自己却又没用方向的朋友,也可以和我一起来交流呀!

编辑资料、学习路线图、源代码、软件安装包等!【点击这里】领取!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

图片

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

 

 

HTML和CSS基础部分 1、<title> 定义文档的标题,它是 head 部分中唯一必需的元素。 阅读详情

相关推荐

HTML5基础部分

笔记

new的博客 4494

关于HTML基础部分

表格标签 行标签 属性 1属性align 居中 2属性valign 位置 3属性bgcolor 颜色 tr是所在行 如果写两个tr就代表两行 如图 效果 效果展示 大家可以试一试 表头标签 用法 效果 不一定在列里添加 行里添加th也可以 大家可以试一试效果就是这样 框架集标签 (必须放在标签之外与body是平行的) 就是把网页划分开 互不干扰 用法 (分了三个百分比所以有...

qq_44790964的博客 133

Html基础部分

  下面来看看Html基础3部分: 1:文档声明 文档声明很重要,直接影响浏览器的渲染效果。   eg:如盒子模型有标准 W3C 盒子模型 和  IE 盒子模型     加上了 DOCTYPE 声明,那么所有浏览器都会采用标准 W3C 盒子模型去解释你的盒子,网页就能在各个浏览器中显示一致了。    不属于html文档的一部分,不用闭合。(<html></h...

kobekobecheng的博客 414

HTML部分基础语法

HTML概述 HTML 指的是超文本标记语言 (HyperText Markup Language)。 超文本:是指页面内可以包含图片、链接、声音,视频等内容 标记:标签(通过标记符号来告诉浏览器网页内容该如何显示) 利用HTML语言把我们需要的内容显示到网页上去,但是HTML并不显示。 HTML声明 html4的文档声明 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transit...

qq_44831808的博客 377

HTML 部分基础属性

一 : HTML html总结: 超文本标记语言 ​ 学习标签: 标签的作用 特点 属性 属性值 常用标签 连接标签 : a 超链接 锚链接 href title target 图像标签 : img 基础标签 : body head title p div h* span hr br 格式化标签 : address b u i del em strong sup sub … 列表标签 : ul ol li 表格标签 : table tr td|th 表单标签 : from in

weixin_55208421的博客 545

Html 部分基础标签

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!

m0_75011249的博客 932

HTML部分基础

HTML HTML 超文本标记语言 CSS 层叠样式表 JS(JavaScript) 脚本语言 <!DOCTYPE html> //声明文档 <html lang="en"> <head> <meta charset="UTF-8"> //字符编码 <meta name="viewport" content="w...

czhaoxi的博客 141

前端基础学习html部分小结

前端基础学习,html部分,个人学习记录

morningflash的博客 1475

HTML基础及Javase部分梗概

作者  Muggle Html Version:1.0 StartHTML:0000000105 EndHTML:0000015425 StartFragment:0000000127 EndFragment:0000015407 1.HTML 是什么? HTML 是超文本标记语言,我们把一些文字,图片,音频,视频通过标记 标记起来, 文本,图片,音频,视频   这些标记形成的

MuggleGod的博客 2667

html部分基础知识

html部分基础知识 HTML是超文本标记语言,是网页的设计语言。 的意思是这个文件是一个HTML5的版本; 指定文档的字符集, HTML文本的标记: 加粗:,倾斜: 下划线:,删除线: 上标:,下标: html的段落元素p:在页面中表示一段独立的文本独占一行; HTML的分割元素: 假如创建一条宽为10,长为400的黑色分割线; 例: # 欢迎使用Markdown编辑器 你好! 这是你第一次使...

FlowersCuratin的博客 198

基础部分|HTML

HTML格式 <html> <body> <h1>我的第一个标题</h1> <p>我的第一个段落。</p> </body> </html> 例子解释 ”<html>“ 与 ”</html>“ 之间的文本描述网页 “<body>” 与 “</bod...

励志长大 192

【Web前端——HTML基础部分

HTML基础,包括许多标签

m0_51490933的博客 340

HTML基础——第一部分

1. 文档类声明标签 <!DOCTYPE html> <html lang="en"> <!--采用英文显示--> <!--采用UTF-8保存文字--> <meta charset="UTF-8"> 2. 段落标签 文本会根据浏览器窗口的大小自动换行 <p>~</p> 3. 标题标签 标题标签总共分为六种,分别为一级标签,二级标签… 对应标题会加粗显示 <h1>---</h1> <h1&gt

qq_45568418的博客 608

html整体页面居中顶格对齐,第一部分HTML整体结构,HTML基础设施

HTML代码规范我们知道,前端工程师入门容易,通过学习基本的HTML和CSS就能在浏览器上看到实际的效果,可是要写好的HTML,就不是那么容易了。这里将和大家分享HTML规范,希望大家读完之后都能够有所收获。本文将主要以下面三个部分展开:HTML整体结构HTML代码格式HTML内容语义http://bootstrap.cn/p/codeguide.html 这里的规范也不错,有时间看看。第一部分...

weixin_28730549的博客 1112
上一篇: Pycharm安装教程,超详细步骤必看!
下一篇: Python爬虫小白新手入门!
Python_trys
博客等级 码龄2年 3901粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值