webCrawlerNote - juedaiyuer/researchNote GitHub Wiki

#爬虫初步笔记#

URI:Web 上每种可用的资源,如HTML 文档、图像、视频片段、程序等都由一个通用资源标志符(Universal Resource Identifier,URI)进行定位

URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位符”。

URL的格式由三部分组成:

  • 第一部分是协议(或称为服务方式)
  • 第二部分是存有该资源的主机 IP 地址(有时也包括端口号)
  • 第三部分是主机资源的具体地址,如目录和文件名等

文件的URL

用URL表示文件时,服务器方式用 file 表示,后面要有主机 IP 地址、文件的存取路径(即目录)和文件名等信息。有时可以省略目录和文件名,但“/”符号不能省略。

file://ftp.yoyodyne.com/pub/files/foobar.txt

##通过指定的URL抓取网页内容##

所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器端,然后读取服务器端的响应资源。

Java把网络资源看成是一种文件,对网络资源的访问和对本地文件的访问一样方便

java.net.URL类可以对相应的Web服务器发出请求并且获得响应文档

URL pageURL = new URL(path)

接着,可以通过获得的 URL 对象来取得网络流,进而像操作本地文件一样来操作网络资源:

InputStream stream = pageURL.openStream();

在实际的项目中,网络环境比较复杂,因此,只用java.net包中的API来模拟IE客户端的工作,代码量非常大。需要处理HTTP返回的状态码,设置HTTP代理,处理HTTPS协议等工作。