Python爬虫入门有哪些基础知识点


Posted in Python onJune 02, 2020

1、什么是爬虫

爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。

比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起的大网对这之蜘蛛来说触手可及,分分钟爬下来不是事儿。

2、浏览网页的过程

在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/ ,我们会看到几张的图片以及百度搜索框,这个过程其实就是用户输入网址之后,经过DNS服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片了。

因此,用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。

3、URL的含义

URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

URL的格式由三部分组成:

①第一部分是协议(或称为服务方式)。

②第二部分是存有该资源的主机IP地址(有时也包括端口号)。

③第三部分是主机资源的具体地址,如目录和文件名等。

爬虫爬取数据时必须要有一个目标的URL才可以获取数据,因此,它是爬虫获取数据的基本依据,准确理解它的含义对爬虫学习有很大帮助。

4、环境的配置

学习Python,当然少不了环境的配置,最初我用的是Notepad++,不过发现它的提示功能实在是太弱了,于是,在Windows下我用了PyCharm,在Linux下我用了Eclipse for Python,另外还有几款比较优秀的IDE,大家可以参考这篇文章 学习Python推荐的IDE 。好的开发工具是前进的推进器,希望大家可以找到适合自己的IDE。

知识点补充:

什么是爬虫和爬虫的基本逻辑

“爬虫”是一种形象的说法。互联网比喻成一张大网,爬虫是一个程序或脚本在这种大网上爬走。碰到虫子(资源),若是所需的资源就获取或下载下来。这个资源通常是网页、文件等等。可以通过该资源里面的url链接,顺藤摸瓜继续爬取这些链接的资源。

你也可以把爬虫当作模拟我们正常上网。打开网页并分析网页的内容获取我们想要的东西。

那么,这里就涉及到http传输协议等相关的知识。

我们通常打开一个网页,基本上都是打开一个Url链接即可。在这个过程当中,实际上发生了很多事情。

打开一个Url链接,浏览器自动向Url链接的服务器发送一个请求(Request),告诉服务器说我需要访问这个Url链接的内容,请返回数据给我。服务器就处理该请求,响应该请求并返回结果给浏览器。

既然爬虫需要模拟该过程。根据http协议,爬虫需要构造一个请求(Request),发到请求到目标服务器(通常是Url链接)。然后等待服务器的响应(Response)。

所有相关的数据都在这个响应结果当中,这个就是爬虫实现的基本逻辑。

以上就是Python爬虫入门有哪些基础知识点的详细内容,更多关于Python爬虫入门的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python统计日志ip访问数的方法
Jul 06 Python
python中import学习备忘笔记
Jan 24 Python
Python3.4实现远程控制电脑开关机
Feb 22 Python
pandas中去除指定字符的实例
May 18 Python
Python使用random.shuffle()打乱列表顺序的方法
Nov 08 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
keras导入weights方式
Jun 12 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
Python中bisect的用法及示例详解
Jul 20 Python
python中slice参数过长的处理方法及实例
Dec 15 Python
Python采集壁纸并实现炫轮播
Apr 30 Python
Python实现进度条和时间预估的示例代码
Jun 02 #Python
python爬虫容易学吗
Jun 02 #Python
基于Python词云分析政府工作报告关键词
Jun 02 #Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 #Python
如何利用python web框架做文件流下载的实现示例
Jun 02 #Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 #Python
Java多线程实现四种方式原理详解
Jun 02 #Python
You might like
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
php批量删除操作代码分享
2017/02/26 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
JavaScript DOM 学习第九章 选取范围的介绍
2010/02/19 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
django1.8使用表单上传文件的实现方法
2016/11/04 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
幼儿教师国培感言
2014/02/19 职场文书
市场开发计划书
2014/05/07 职场文书
房产分割协议书范文
2014/11/21 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书