要使用selenium还是使用其他方式抓取网页的内容,都必须对网页的架构比较熟悉。我们来看看如何定位网页的内容。
首先我们先尝试解析URL,看看下面这个URL地址:
http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
url:协议 + 域名/IP + 端口 + 路由 + 参数
我们来解析一下就能知道的很清楚。
协议:http
域名:www.x2y2.com
端口:80
路由:/fisker/post/0703/window.location.html
参数:?ver=1.0&id=6 #传递给服务器的参数
锚点:#imhere
ps:最后一个概念锚点就是指定了html中的特定位置
如这个html中就设置一个锚点链接<a href="#miao">去找喵星人</a>;(注意:href属性的属性值最前面要加#)
http的请求和响应
我们打开www.baidu.com这个网址,并用Chrome为例来讲解抓包,windows下用F12来调出开发者模式来审查网页元素。
注意看到点击network;下面一栏选择Preserve log来保留跳转时之前的日志。
第一列 Name :请求的名称,一般会将 URL 的最后一部分内容当作名称。
第二列 Status :响应的状态码,这里显示为 200 , 代表响应是正常的 。 通过状态码,我们可以判断发送了请求之后是杏得到了正常的响应 。
第三列 Type : 请求的文梢类型 。 这里为 document,代表我们这次请求的是一个 HTML 文档,内容就是一些 HTML 代码 。
第四列 Initiator : 请求源。 用来标记请求是由哪个对象或进程发起的 。
第五列 Size : 从服务器下载的文件和请求的资源大小。 如果是从缓存中取得的资源,则该列会显示from cache。
第六列Time : 发起请求到获取响应所用的总时间 。
第七列Watefall : 网络请求的可视化瀑布流。
ps:这里重点讲解一下Preserve log。有时候你点击一个链接。浏览器发出n个请求,然后跳转到了另外一个页面。这个时候有进行了一个新的请求。勾选这个选项工具就会保存你跳转之前的请求。
1.请求
点选ALL查看所有的网络请求。可以看到左下角共有18项请求。而其实我打开的这个网页只是www.baidu.com.
点击选择第一个请求。一般来说第一个请求是主页面的请求。页面就会变成这样。