Python3.6爬虫入门教程之三爬虫基本原理
1.爬虫是什么?
1.互联网世界
这个世界上的互联网,是由网络设备通过有线无线等方式一台接一台的连接在一起组成的,就想蜘蛛网一样,互联网中的每一台计算机就是整个互联网的节点。互联网的核心价值就在于数据的传递和共享。举个例子,网站其实就是存储在服务器上的数据,服务器配置好,域名配置好,别人就能通过自己的浏览器去访问网站的数据。(服务器相当于一台长时间不关闭,一直运行的电脑。)
2.上网的过程
上网实际上就是用户端计算机发出请求给服务器端计算机,然后本地计算机将服务器端的数据下载到本地就完成了上网过程。这里用户实际在上网的过程中获取网络中的数据方式是:浏览器提交请求->下载网页的代码和数据->浏览器进行解析和渲染页面。然后我们上网的人,就看到了相关的数据。
3.如何找到互联网上自己需要的数据呢?
解决这个问题,我们一般有2种方法。一种是你已经明确了将要访问的网站信息,知道那个网站有你需要的东西,那么你就可以通过浏览器输入你要访问的域名。然后你就能到这个网站上去了,这是明确域名地址的情况。
第二种情况,就是通过百度啊,谷歌啊,360搜索啊等等搜索引擎进行搜索查找,然后进行间接访问,这里就得引出爬虫的概念了。
4.爬虫
互联网世界就像蜘蛛网一样,一台连着一台计算机,而在这张互联网上的每一台电脑中的数据其实都可以形象的理解成蜘蛛网上的猎物,而爬虫程序就可以理解成蜘蛛,爬虫沿着蜘蛛网去抓取自己想要的猎物也就是互联网中的数据资源。然后这些网络蜘蛛将数据存储到自己的服务器上,人们就能通过该公司的搜索引擎搜索到自己需要的数据了。目前主流的搜索引擎,其爬虫蜘蛛程序都比较强大。
5.爬虫爬取网站数据的流程
爬虫实际上:模拟浏览器发送请求->下载网页端的代码->只提取有用的数据->存放于数据库或者文件中。
6.爬虫的价值
百度,搜狗,360搜索,谷歌等搜索引擎系统背后都有着自己的爬虫程序。互联网上最有价值的东西便是数据,比如天猫商城的商品信息,链家网的租房信息,雪球网的证券投资信息等等,这些数据都代表了各个行业的真金白银,可以说,谁掌握了行业内的第一手数据,谁就成了整个行业的主宰,如果把整个互联网的数据比喻为一座宝藏,那我们的爬虫课程就是来教大家如何来高效地挖掘这些宝藏,掌握了爬虫技能,你就成了所有互联网信息公司幕后的老板,换言之,它们都在免费为你提供有价值的数据。
2.爬虫的基本流程
1.发送请求
使用http库向目标站点发送请求,也就是发送Request请求。Request请求中包含:请求头,请求题等信息。
2.获取目标站点返回的响应信息
如果目标站点目标服务器能够正常响应请求内容,我们的客户端程序就能得到一个应答Response。Response响应中包含以下信息:HTML,CSS,JavaScript,json,图片,视频等等内容信息。
3.解析内容
获取到上面一坨信息之后,数据是非常非常乱的,里面包含着一堆一堆的代码。这里我们就需要使用正则表达式来进行解析,获得正确的我们想要的内容数据。
在python中常用的第三方正则表达式解析库如下:
解析HTML文件:正则表达式,第三方模块库Beautifulsoup,pyquery等
解析json数据:json模块
解析二进制数据:以b的方式写入文件
4.保存数据
常用的方式是数据库或者文件文档中。
3.网页的请求与响应过程
http协议:http://www.cnblogs.com/linhaifeng/articles/8243379.html
Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)
Response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)
ps:浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据。
4.Request相关知识
1.请求方式:
请求方式常用的有:GET和POST方式
其他不常用请求:HEAD,PUT,DELETE,OPTHONS。
Post和get区别可以用登录这个操作来查看:
post与get请求最终都会拼接成这种形式:k1=xxx&k2=yyy&k3=zzz
post请求的参数放在请求体内:
可用浏览器查看,存放于form data内,可以通过抓包工具查看。
get请求的参数直接放在浏览器最上方的url后
2.请求url
url全称是统一资源定位符,网站上每一个网页每一个图片都有唯一唯一对应的url连接来与之对应。网页在加载过程中,首先是先加载document文件,加载过程中如果遇到连接就进行下载图片。
3.请求头
用于服务器判断是否为合法请求,如果不配置请求头,服务器端可能会把爬虫当成非法用户,一般包括user-agent,host,cookies。其中cookies用来保存登录信息。爬虫程序一般都会加上请求头信息。
5.Response相关知识
1.响应状态
爬虫发出请求之后,服务器端会进行状态响应。
200:代表成功
301:代表跳转
404:文件不存在
403:权限
502:服务器错误
## 2.preview部分就是网页源码
这里就是我们爬虫获取到的原始的网页源码部分,包括了整个网页的HTML代码,JavaScript代码CSS代码等等内容。我们的爬虫爬取到这部分数据之后,就要开始进行数据的解析了。
6.总结
1.爬虫过程
爬取数据->解析数据->保存数据
2.爬虫工具库
请求库:requests,selenium
解析库:beautifulsoup,pyquery
存储:MySQL数据库或mongodb等
3.爬虫常用框架
scrapy
转载请注明:燕骏博客 » Python3.6爬虫入门自学教程之三:网络爬虫程序基本原理
赞赏作者微信赞赏
支付宝赞赏
