1.深入理解URL与URI
参考:http://www.cnblogs.com/gaojing/archive/2012/02/04/2413626.html
URI:Universe Resource Identifier 通用资源标识符
web上的每一个资源,比如视频、网页、文件等都是通过URI对其进行定位。记住是唯一标识
URI的组成:1.访问资源的命名机制 2.存放资源的主机名 3.资源自身的路径 比如:http://www.webMonkey.com.cn/html/html40
不同颜色即表示不同的三个部分。
URL:Uniform Resource Locator 统一资源定位符
URL是URI的一个子集。URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。
URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,
所以,是绝对的,而通常说的relative URL,则是针对另一个absolute URL,本质上还是绝对的。
URL是绝对的概念,爬虫技术就是通过URL来获取所需要的内容的;所以理解URL的结构至关重要;
URL组成:
1.协议
2.主机名(有时有端口号)
3.资源路径
比如:http://www.peopledaily.com.cn/channel/welcome.htm
file://ftp.yoyodyne.com/pub/files/foobar.txt
2.通过URL抓取网页内容
抓取一个网页内容的过程类似于你打开你的IE浏览器访问一个网页;
仔细体会。其实就是把你的IE浏览器作为客户端,输入的网址也就是URL作为参数,发送一个请求得到你想要的网页,解析展现,
实质就是一个网页抓取并解析的过程。
所以:
所谓网页抓取,就是把 URL 地址中指定的网络资源从网络流中读取出来,保存到本地。
类似于使用程序模拟 IE 浏览器的功能,把 URL 作为 HTTP 请求的内容发送到服务器端, 然后读取服务器端的响应资源。
为什么要用Java来写网页抓取?
java把请求和响应封装成了流,并提供了API,比如java.net.URL
URL url = new URL(path);
inputStream is =url.openStream();
但是实际中的网络环境及其复杂,这样的代码量太大。所以我们用httpClient来实现。
具体代码见爬虫技术(2)--抓取网页的代码实现