什么是爬虫
1、什么是互联网?
互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样。
2、互联网建立的目的?
互联网的核心价值在于数据的共享/传递:数据是存放于一台台计算机上的,而将计算机互联到一起的目的就是为了能够方便彼此之间的数据共享/传递,否则你只能毫u盘去别人的计算机上拷贝数据了。
3、什么是上网?爬虫要做的是什么?
我们所谓的上网便是由用户端计算机发送请求给目标计算机,将目标计算机的数据下载到本地的过程。
3.1只不过,用户获取网络数据的方式是:
浏览器提交请求->下载网页代码->解析/渲染成页面。
3.2而爬虫程序要做的就是:
模拟浏览器发送请求->下载网页代码->只提取有用的数据->存放于数据库或文件中
3.1与3.2的区别在于:
我们的爬虫程序只提取网页代码中对我们有用的数据
4、总结爬虫
4.1 爬虫的比喻:
如果我们把互联网比作一张大的蜘融蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的猎物/数据
4.2爬虫的定义:
向网站发起请求,获取资源后分析并提取有用数据的程序
4.3 爬虫的价值:
互联网中最有价值的便是数据,比如天猫商城的商品信息,链家网的租房信息,雪球网的证券投资信息等等,这些数据都代表了各个行业的真金白银,可以说,谁掌握了行业内的第一手数据,谁就成了整个行业的主宰,如果把整个互联网的数据比喻为一座宝藏,那我们的爬虫课程就是来教大家如何来高效地挖掘这些宝藏,掌握了爬虫技能,你就成了所有互联网信息公司幕后的老板,换言之,它们都在免费为你提供有价值的数据。
爬虫的基本流程
1、发起请求
使用http库向目标站点发起请求,即发送一个RequestRequest包含:请求头、请求体等
2、获取响应内容
如果服务器能正常响应,则会得到一个ResponseResponse包含:html,json,图片,视频等
3、解析内容
解析html数据:正则表达式,第三方解析库如Beautifulsoup,pyquery等
解析json数据:json模块
解析二进制数据:以b的方式写入文件
4、保存数据
数据库
总结
#1、总结爬虫流程:
爬取--->解析--->存储
#2、爬虫所需工具:
请求库:requests,selenium
解析库:正则,beautifulsoup,pyquery存储库:文件,MySQL ,Mongodb,Redis
#3、爬虫常用框架:
scrapy
爬虫的结构
Python爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据)。
1.调度器
调度器:相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工作。
2.URL
管理器
URL管理器:包括待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要用三种方式,通过内存、数据库、缓存数据库来实现。
3.网页下载器
网页下载器:通过传入一个URL地址来下载网页,将网页转换成一个字符串,网页下载器有urllib2
(Python官方基础模块))包括需要登录、代理、和cookie, requests(第三方包)
4.网页解析器
网页解析器﹔将一个网页字符串进行解析,可以按照我们的要求来提取出我们有用的信息,也可以根据DO树的解析方式来解析。网页解析器有正则表达式(直观,将网页转成字符串通过模糊匹配的方式来提取有价值的信息,当文档比较复杂的时候,该方法提取数据的时候就会非常的困难)、htm.parser
(Python自带的)、 beautifulsoup
(第三方插件,可以使用Python自带的htrm.parser
进行解析,也可以使用xml
进行解析,相对于其他几种来说要强大一些)、lxml
(第三方插件,可以解析xml
和HTML),html.parser
和beautifulsoup
以及lxml
都是以DOM树的方式进行解析的。
5.应用程序
应用程序:就是从网页中提取的有用数据组成的一个应用。