现在是2015年12月10日晚上21:56,我坐在自己的电脑面前发呆,忽然想起自己的笔记本里还雪藏着好东西,哈哈哈,赶紧在臃肿的电脑磁盘里找啊找啊,
哎呦喂,我擦,到底有啥东西,(搜刮过程自行脑补) 然后找到了以前收藏的一本书《自己动手写网络爬虫》,╮(╯▽╰)╭反正每天晚上都很无聊,所以准备从今晚开始学这本书吧。
在粗略的看了一下这本书后,火速前往百度下载干活的工具
然后泡上一杯咖啡,打开了尘封已久的….咳咳PDF书籍,so 现在我就要开始学习了(废话真多)
第一天
╮(╯▽╰)╭ 一大堆蚊子,看得我头都晕了,只看记得一句话:网络爬虫的基本操作是抓取网页。又介绍了一下URL的组成部分。
URL通常由三部分组成:
1.访问资源的命名机制;
2.存放资源的主机
3.资源自身的名称,由路径表示
http开头的是 HTTP协议的URL,比如:http://www.wolfmark.org/
file开头的是文件的URL,比如 file://ftp.wolfmark.org/
好了,热身完了,现在开始吹牛了。
哎呀,要写代码了,想想还真是小激动啊,咱也是写爬虫的人了,虽然我不知道爬虫到底有多牛X….算了,反正是学习了。打开万能的eclipse,
他喵了个咪,哎,我那蹩脚的英文啊….叫啥名字呢,.嗯 就叫WebSpider吧
然后再新建一个类
然后开始动手了,根据葵花宝典的指示,我们先要构造URL对象
URL pageURL=new URL(path);
然后发现,他喵的居然错了,有红线!!!这让没有JAVA开发经验的人情何以堪???
在思考了30秒后,想起了JAVA要导入包,java.net.URL
嗯,没错了。
eclipse 默认快捷键 Ctrl+Shift+o 会自动添加缺省的包,前提是你要把光标放在有红线的代码上
可以通过获得的URL对象来取得网络流,进而想操作本地文件一样来操作网络资源:
InputStream stream=pageURL.openStream();
总结一下,因为只用java.net包中的api来模拟IE客户端工作,代码量非常大,所以在实际开发中常常使用Apache的HTTp客户端开源项目——HttpClient。它完全能够处理HTTP连接中的各种问题,使用起来非常方便。只需要在项目中引入HttpClient.jar包。好吧,我又去百度搜刮HttpClient.jar包了,顺带还找到了一个貌似是官方PDF,留着有时间用.英盲的我科普一下,tutorial是说明书的意思。
然后我们就向工程里添加需要的包,先建立一个文件夹lib文件夹,然后把三个文件全部拖进去,然后点确定就可以
然后再项目上点击右键
【重构路径】->【配置重构路径】
然后导入我们刚刚的三个包
具体操作还是看百度经验把,我实在太懒了可能说的不是很详细。
http://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html
然后,写出了我们的第一个程序
package com;
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;
public class Spider {
public static void main(String[] args) throws HttpException, IOException {
//创建一个客户端,类似于打开一个浏览器
HttpClient httpClient=new HttpClient();
//创建一个get方法,类似于在浏览器地址栏中输入一个地址
GetMethod getMethod=new GetMethod("http://www.wolfmark.org");
//回车,获得响应状态码
int statusCode=httpClient.executeMethod(getMethod);
//查看命中情况,可以获得的东西更多,比如head,cookies等
System.out.println("response="+getMethod.getResponseBodyAsString());
}
}
END:现在时间是2015年12月11日 0:19 该休息了(虽然没有学多少),可能程序员熬夜是常有的事,但是养好身体才是关键,世界晚安!