Python网络爬虫(五):爬虫原理总结
爬虫的工作原理:
简单地说,就是爬虫程序模拟浏览器访问web服务器,从而获得自己感兴趣的内容的过程。
这里需要了解一下网站的工作原理。
1.基本结构
Web采用的是客户机--服务器架构。
客户端(Client)可以通过网络连接访问另一台计算机的资源或服务,而提供资源或服务的计算机就叫服务器(Server)。
比如你通过电脑上的搜狗浏览器访问一个网站www.baidu.com,在这里浏览器就是客户端,网址www.baidu.com所对应的ip的主机就是服务器。
通常所说的web客户端指的就是电脑上安装的各种浏览器,web服务器则指的是分别在世界各地的主机。
2.一个web网站的搭建
(参考文章:https://www.zhihu.com/question/19661000/answer/12558287)
一个网站=服务器+域名+网站程序和资源
要搭建一个网站,你需要准备好我上面提到的这三部分:
举例说明:例如要搭建http://zhihu.com这个网站,那么需要以下步骤:
- 服务器,用来存放网站程序并让网站程序正常运转,可以理解为连接在互联网上的一台24小时都在运转的计算机,这台计算机的IP一般是固定的(当然也有通过软件来实现用动态IP做服务器的,此处暂且不论),这样互联网上的其他用户才能准确找到服务器上的资源。
- 域名,因为IP比较难记,所以使用域名来解析指向服务器IP,服务器那边再绑定域名,这样就可以通过易于记忆的域名来访问服务器上的资源了.域名可以在域名注册商网站注册使用。如http://zhihu.com是在域名注册商http://godaddy.com处注册的。
- 网站程序,就是要实现一个网站功能所需要的程序和资源的集合. 网站程序和资源是存放于服务器硬盘上的。
举例说明:例如要搭建http://zhihu.com这个网站,那么需要以下步骤:
- 购买一台服务器(小网站的话也可以使用虚拟主机或VPS),配置好服务器信息;
- 开发好网站程序,将网站程序上传到服务器,配置好数据库连接等信息;
- 到域名注册商网站注册http://zhihu.com这个域名(如果域名已经被别人注册了而你又很想要那可以花钱联系域名持有人买下来),将域名解析到服务器IP,OK,这样一个http://zhihu.com网站就搭建好了,下一步就是宣传运营吧。
这里我总结一下:
- 服务器:承载网站服务器端程序和网站资源的计算机
- 网站服务器程序:C/S架构中的服务器端,功能是根据客户端的要求调取服务器中的资源(如网页文件、图片、视频等)并发送给客户端
- 一个网站域名(即网址)对应着一个IP地址,通过该IP地址即可找到服务器主机,域名与IP的映射关系是通过DNS实现的。
3.web客户端与web服务器的交互过程
首先,在浏览器中输入一个网址,点击进入,这时浏览器向该网址对应的ip发送了请求信息,服务器主机上的程序接收到信息后,从主机中调取一个网页文件发送过来,浏览器接收并解析该文件,最后以网页页面的形式展现在窗口。
然后在网页上进行其他操作,就会从服务器获得相应的资源。
服务器发送回来的网页文件,如果包含了网页显示需要的所有资源,则称之静态网站。
静态网站一般以(htm、.html、.shtml、.xml)等格式进行编写。所以爬虫只需要解析这些文件,就可以获得网页上的所有东西。
动态网页的文件中嵌入了一些其他格式(.asp、.jsp、.php、.perl、.cgi)的代码,这些代码会在用户操作网页时或者随着时间动态地运行,并加载出相应的资源文件显示出来。所以单纯地通过解析服务器发来的网页文件,是无法完全获得网页的内容的。
4.各种语言格式
编写静态网页代码的语言:一般是html,css(一种用来修饰网页和排版的语言),xml
编写动态网页代码的语言:ASP、PHP、JSP、JavaScript(其中前三种运行在服务器,JS运行在客户端)
json是JS的字符串表示方法。
参考文章: