我们在写爬虫的时候,首先要找到一个可以调用的URL来获取服务器的资源。逻辑就是我们通过这个URL来发起请求。来获取浏览器的响应。根据响应我们来提取出我们需要的信息。
这篇博客主要讲的就是我们常见的几种URL的构成。以及如何去分析你拿到的URL。
首先我们去看看URL的基本格式:
'scheme://host[:port#]/path/…/[?query-string][#anchor]'
scheme:协议(例如:http, https, ftp)
host:服务器的IP地址或者域名
port:服务器的端口(如果是默认端口,缺省端口80)
path:访问资源的路径
query-string:查询参数
anchor:锚(跳转到网页的指定锚点位置)
我们简单的看几个URL:
"https://www.jianshu.com/"
这是件数的首页。之后scheme和host。port已经省略。
"https://www.jianshu.com/u/5d8a174528fd"
这是简书的某人的博客的地址。我们可以看到的是:有scheme host path
也就是说port是可省参数
"https://www.jianshu.com/search?q=苹果&page=1&type=note"
这个是包含query-string部分的
我们可以看都问号的后面有 q=苹果 page=1 type=note
?后面跟的都是查询字符串
最后一个我们要说的是锚点 #anchor
"https://hr.tencent.com/position.php?&start=30#a"
我们先看一个例子。这是一个腾讯招聘网站的链接。我们看到它的后面有一个#a。这个所代表的意思是:
代表网页的a位置。浏览器读取这个URL后,会自动将a位置滚动至可视区域。
为网页位置指定标识符,有两个方法:
一是使用锚点,比如<a name="a"></a>
二是使用id属性,比如<div id="a">
我们就拿腾讯招聘来看:
腾讯招聘从最顶部显示结果 刷新之后显示的内容为什么要贴两张这个图片呢?
原理就在这儿。在我们上面看到的URL的后边有#a。真正的玄机在这个a。给我们显示的是id=“a”这个锚点,就是在可视范围内从这个标签属性id=“a”开始。这个锚点与我们的与网页的交互没有一点关系。只是为了给我们更加友好的显示网页的内容。
合法身份号上
可以去猜测一下。假如我们有一个网页内容很多。而且网页显示的话长度很长。那么我们应当从哪个部分开始给用户显示。所以应当选择一个友好的位置给用户打开网页之后就可以展示给用户。也就是说你不能选择最末尾的给用户去查看。具体去给用户显示什么。it's up to you!
这就是锚点的作用。
网友评论