前言:
目前各位老铁们对“老王python培训”都比较珍视,咱们都需要知道一些“老王python培训”的相关资讯。那么小编同时在网络上网罗了一些关于“老王python培训””的相关知识,希望朋友们能喜欢,咱们快快来了解一下吧!1网络爬虫简介
网络爬虫,也叫网络蜘蛛(Web Spider)。它根据网页地址(URL)爬取网页内容,而网页地址(URL)就是我们在浏览器中输入的网站链接。
例如:
URL 专业一些的叫法是统一资源定位符(Uniform Resource Locator),它的一般格式如下(带方括号[]的为可选项):
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
URL 的格式主要由前个三部分组成:
protocol:第一部分就是协议,例如百度使用的就是https协议;hostname[:port]:第二部分就是主机名(还有端口号为可选参数),一般网站默认的端口号为80,例如百度的主机名就是,这个就是服务器的地址;path:第三部分就是主机资源的具体地址,如目录和文件名等。
网络爬虫就是根据这个 URL 来获取网页信息的。
还是,以百度为例,举个简单的例子:
这两个 URL 都可以打开网页,区别在于一个是 http 协议,一个是 https 协议。
http 协议默认使用的端口是 80,https 协议默认使用的端口是 443。
每一个 URL 的背后,其实都是对应着一台服务器的,甚至成千上万台。
通俗一点讲,URL 就是每个服务器的地址。例如,老王家住在北京市朝阳区,老李家住在北京市海淀区。
你想串门溜达去,就得通过这个 URL 家庭地址,找到他们。
如果有一天,你想去老王家,跟他老婆聊聊天,你仅仅知道老王家住在北京市朝阳区是不够的。
因为,你还得知道他家在哪个楼,几单元,几零几。
对应 ULR 上,也就是你光知道 hostname 不够,你还得有个更详细的地址,那就得补充 path:
比如,cuijiahua.com 是我的 hostname,想找到爬虫系列的文章,还得去 blog 目录下的 spider 目录下找,这个就是具体的地址 path。
老王家的详细家庭住址知道了,如果你还想夜晚去,并且趁着老王不在,与老王的老婆聊聊天。
那这个情况就有点复杂了。不仅需要知道 protocol 、hostname 和 path,你还得满足一些条件,这个条件就是 [;parameters][?query]#fragment,这些东西。
比如,为了完成此次夜探老王家的目标,你可能大概需要这样的 URL:
这个 URL 的意思就是,baitian=0表明是晚上,laowangzaiji=0表示老王不在家,在满足这个条件的时候,你进了2号楼3单元702的朝阳区老王家,就可以夜探老王家了。
?laowangzaiji=0&baitian=0,这是一种询问,在这个条件下访问。
够通俗易懂了吧!
3审查元素
在讲解爬虫内容之前,我们需要先学习一项写爬虫的必备技能:审查元素。
在浏览器的地址栏输入 URL 地址,在网页处右键单击,找到检查。(不同浏览器的叫法不同,Chrome 浏览器叫做检查,Firefox 浏览器叫做查看元素,但是功能都是相同的)
我们可以看到,右侧出现了一大推代码,这些代码就叫做 HTML 。什么是 HTML ?举个容易理解的例子:我们的基因决定了我们的原始容貌,服务器返回的 HTML 决定了网站的原始容貌。
为啥说是原始容貌呢?因为人可以整容啊!扎心了,有木有?那网站也可以"整容"吗?可以!请看下图:
我能有这么多钱吗?显然不可能。我是怎么给网站"整容"的呢?就是通过修改服务器返回的 HTML 信息。我们每个人都是"整容大师",可以修改页面信息。我们在页面的哪个位置点击审查元素,浏览器就会为我们定位到相应的 HTML 位置,进而就可以在本地更改 HTML 信息。
再举个小例子:我们都知道,使用浏览器"记住密码"的功能,密码会变成一堆小黑点,是不可见的。可以让密码显示出来吗?可以,只需给页面"动个小手术"!以淘宝为例,在输入密码框处右键,点击检查。
可以看到,浏览器为我们自动定位到了相应的 HTML 位置。将下图中的 password 属性值改为 text属性值(直接在右侧代码处修改):
我们让浏览器记住的密码就这样显现出来了:
说这么多,什么意思呢?浏览器就是作为客户端从服务器端获取信息,然后将信息解析,并展示给我们的。我们可以在本地修改 HTML 信息,为网页"整容",但是我们修改的信息不会回传到服务器,服务器存储的 HTML 信息不会改变。刷新一下界面,页面还会回到原本的样子。这就跟人整容一样,我们能改变一些表面的东西,但是不能改变我们的基因。
4简单实例
网络爬虫的第一步就是根据 URL ,获取网页的 HTML 信息。在 Python3 中,可以使用 urllib.request 和 requests 进行网页爬取。
urllib 库是 Python 内置的,无需我们额外安装,只要安装了 Python 就可以使用这个库。requests 库是第三方库,需要我们自己安装。
requests 库强大好用,后续文章的实例,也都是以此为基础进行讲解。requests 库的 github 地址:
1、requests 安装
在 cmd 中,使用如下指令安装 requests :
pip install requests
或者:
easy_install requests
2、简单示例
requests 库的基础方法如下:
官方中文教程地址:
requests 库的开发者为我们提供了详细的中文教程,查询起来很方便。
首先,让我们看下 requests.get() 方法,它用于向服务器发起 GET 请求,不了解 GET 请求没有关系。
我们可以这样理解:get 的中文意思是得到、抓住,那这个 requests.get() 方法就是从服务器得到、抓住数据,也就是获取数据。让我们看一个例子(以 fanyi.baidu.com为例)来加深理解:
# -*- coding:UTF-8 -*-import requestsif __name__ == '__main__': target = "; req = requests.get(url = target) req.encoding = 'utf-8' print(req.text)
requests.get() 方法必须设置的一个参数就是 url ,因为我们得告诉 GET 请求,我们的目标是谁,我们要获取谁的信息。运行程序看下结果:
这,就是最简单的,网络爬虫。
5总结
本文对网络爬虫的基础进行了讲解,此系列文章为该系列的开篇之作。
后续的文章,会以生动有趣的实例,带大家一起玩转 Python3 网络爬虫。
标签: #老王python培训