Python爬虫基础知识及前期准备

学习爬虫有一小段时间了,于是决定把自己学爬虫时所学的,写过的代码以及看过的文档记录下来,权当小结。第一次写这些,如果有错误,请多指教。

首先我们需要了解一下什么是爬虫。

根据百度百科上给出的定义,” 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。“简单来说,爬虫类似手动下载网页信息,比如小说、歌曲。说到这,或许会有疑问,既然这样,干嘛还去敲代码,直接人工处理不好吗?话是这么说,但如果下载的不是一篇两篇小说,一首两首歌曲呢,需要将整个网站的信息全部爬取下来,这个时候人工操作显得有些力不从心了。

学习简单的爬虫应该做些什么前期准备,我们来梳理一下:

  • 首先我们需要熟悉一门编程语言,在这里我们以Python为例,我们需要简单的了解其语法,掌握列表、字典等数据结构的用法,for循环,文件读取存储等操作,这些将是我们写的爬虫在获取信息,处理信息,存储信息需要用到的知识。不做一一介绍,基础语法可参照菜鸟教程Python基础教程
  • 熟悉网页的基础知识,不需要很精通,但需要有个了解。这里只是简单介绍,想了解更多可以查看我附在介绍后的文档链接

URL:(Universal Resource Locator即统一资源定位符)URL是对能从Internet上得到资源的位置和访问方法的一种简洁的表示。URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位,

使得系统得以对资源(指Internet上可以访问的任何对象,包括文件目录、文件、文档、图像等,以及其他任何形式的数据)进行各种操作,如存储、更新、替换和查找其属性。

URL的一般形式为:

<URL的访问形式>://<主机>:<端口>/<路径>

左边的<URL的访问形式>主要有文件传送协议(FTP)、超文本传送协议(HTTP)等方式,常见形式为HTTP,下面将会介绍到。<主机>一项是必须的,<端口>和<路径>有时侯可省略。例如:http ://http://baidu.com

HTTP:(HyperText Transfer Protocol 即超文本传输协议)HTTP是一个简单的请求——响应协议,通常运行在TCP之上,它指定了客户端可能发送给服务器的消息,以及得到的响应。我们可以简单的了解其发包和收包的概念(GET/POST)详情可以参考菜鸟教程HTTP教程

HTML:(HyperText Markup Lanhguage 即超文本标记语言)HTML是一种制作万维网页面的标准语言,它消除了计算机信息交流的障碍。HTML定义了许多用于排版的”标签“,各种标签嵌入到万维网的页面就构成了HTML文档。我们所要爬取的页面也基本是HTML网页。所以对于HTML中的一些标签需要有所了解,同时也可了解用来控制网页样式布局的CSS,方便以后的解析网页。菜鸟教程HTML教程,菜鸟教程CSS教程

  • 掌握抓包分析工具

一种方法是通过谷歌或者火狐浏览器自带的开发者工具,F12或者鼠标右键检查,可以快速方便的定位网页元素位置

另一种方法是通过抓包分析工具 Fiddler,我也不是很经常用,一般浏览器F12+F5搞定,关于Fiddler的用法可以百度。

  • 正则表达式

用来提取网页信息的表达式,可能会觉得有些繁琐,但学会一个通配模式后,就会觉得正则其实挺好用的。关于正则的教程,推荐大家看看这个:正则表达式30分钟入门教程,另外用正则表达式的时候,如果直接通过代码测试正则表达式的可行性,费时间且麻烦,给大家推荐个网站:正则表达式在线测试

  • 最后就是一些爬虫所需的Python库,大家可以直接在命令行通过pip安装,用PyCharm的可以在Setting中安装。

1.requests 用来请求网页的模块,与之相同作用的还有urllib,不过我更习惯requests requests中文文档

2.BeautifulSoup 用来解析网页的模块,在小型爬虫中具有强大作用,且简单易学。配合requests使用便可轻松爬取并解析网页。BeautifulSoup4.4.0文档

看上去这些内容有点多,但这通过几个小项目还是很好上手的。当然,爬虫可不止这些简单的内容,真正有难度的便在于针对各种反爬取措施所做的策略了,而这,也会在后续通过简单实战的方式向大家介绍,无论是文档还是视频,都只是我们了解爬虫知识的前提,真正使我们掌握的,只有实战,通过自己动手编写代码,相信大家能够很快掌握爬虫的基本使用方法。

好了,第一次就说这么多了,希望大家多多指教,一起学习呀。

python学习交流群:125240963

转载至:https://zhuanlan.zhihu.com/p/36432510

原文地址:https://www.cnblogs.com/pythonedu/p/9029090.html

时间: 2024-08-08 02:15:21

Python爬虫基础知识及前期准备的相关文章

Python爬虫基础知识入门一

一.什么是爬虫,爬虫能做什么 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据. 爬虫可以抓取的某个网站或者某个应用的内容,提取有用的价值.也可以模拟用户在浏览器或者App应用上的操作,实现自动化的程序.以下行为都可以用爬虫实现: 咨询报告(咨询服务行业) 抢票神器 投票神器 预测(

python 爬虫基础知识(继续补充)

学了这么久爬虫,今天整理一下相关知识点,还会继续更新 HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法. HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层. SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障

Python入门基础知识实例,值得收藏!

7月的编程语言指数榜已经发布,Python 在今年5月首次超越 Java 拿下榜首位置后,仍保持上涨趋势,正逐渐与 Java 拉开差距.(图为与去年 7 月数据对比) 上周为大家简单介绍了如何安装Python和配置环境?相信大家都将Python安装成功了吧~今天小白就为大家分享一些Python的基础知识,希望大家都能快速入门Python~ 1.在Python 语言中,对象是通过引用传递的. 在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量. 如:x=

python爬虫-基础入门-爬取整个网站《3》

python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python2.x 使用类库: >> urllib 库 >> urllib2 库 python3.x 使用的类库: >> urllib 库 变化: -> 在python2.x中使用import urllib2 ----- 对应的,在python3.x 中会使用import url

Python网络爬虫基础知识学习

对Python有一些简单了解的朋友都知识Python编程语言有个很强大的功能,那就是Python网络爬虫(http://www.maiziedu.com/course/python/645-9570/),一提到Python,就会想到相关的Python爬虫和scrapy等等,今天就来简单认识学习Python爬虫的基础知识,有了一定的相关爬虫知识,以后学习scrapy.urllib等等知识时,会相对轻松些. 爬虫: 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组

自学Python之四 爬虫基础知识储备

首先,推荐两个关于python爬虫不错的博客:Python爬虫入门教程专栏   和 Python爬虫学习系列教程 .写的都非常不错,我学习到了很多东西!在此,我就我看到的学到的进行总结一下! 爬虫就是一个不断的去抓去网页的程序,根据我们的需要得到我们想要的结果!但我们又要让服务器感觉是我们人在通过浏览器浏览不是程序所为!归根到底就是我们通过程序访问网站得到html代码,然后分析html代码获取有效内容的过程.下面让我们从最简单的爬虫开始: 爬取一个页面源代码 在python中,抓取网页的库是ur

Python 爬虫基础

下面是一个 Python 爬虫最简单的例子,使用网络库 urllib2 和正则表达式库 re,模拟浏览器的 User-Agent. #!/usr/bin/env python # -*- coding: utf-8 -*- #引入基础网络库 import urllib2 #引入正则表达式模块 import re #模拟User-Agent headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWe

VII python(1)基础知识

VII Python(1)基础知识 1989年诞生(同LinuxOS),google推崇,06年后才开始在中国流行,08年运维开始使用python www.python.org(主流OS默认配的python为2.6或2.7,最好在Ubuntu12.10上使用python,对于开发很方便,否则会浪费很多时间在装某一软件包) https://www.python.org/ftp/python/ Python(简单.容易上手.语法非常简明,任何功能都可实现:胶水语言,粘合剂,能与任何语言结合起来(如j

Python 面向对象基础知识

面向对象基础知识 1.什么是面向对象编程? - 以前使用函数 - 类 + 对象 2.什么是类什么是对象,又有什么关系? class 类: def 函数1(): pass def 函数2(): pass # obj是对象,实例化的过程 obj = 类() obj.函数1() ========== 面向对象不好 ============ ========== 函数编程好 ============== - 有时候,函数编程能实现?比较麻烦. - 面向对象非常的简单就能实现. 3.什么时候适用面向对象?