java爬虫笔记

一、URl解释

1、URl统一资源定位符, Uniform Resource Location 也就是说是Internet上信息资源的字符串,所谓的网页抓取就是把URl地址中指定的网络资源从网络中读取出来,保存到本地,

2、java.net.URl类可以对相应的web服务器发出请求并且获得响应的文档,java.net.URl类有过一个默认的构造函数,使用URl的地址作为参数,构造URl对象。

URL pageURl=new URl(path)接着可以获得URl对象类获得网络流,操作网络资源  INputStream steram=pageURL.openStraeam(); 在实际的网络韩静中比较复杂,只用java.net的API来模拟IE客户端的工作,代码量大,需要处理HTTP返回的状态码,设置HTTP代理,处理HTTPS协议 ,咋实际开发中使用Apache的HTTP客户端开源项目HTTPClient处理各种HTTP连接中的问题,只需要在项目中导入HTTPClient.jar包,就可以模拟IE来获取网页。

/////创建一个客户端   http://hc.apache.org/downloads.cgi  这是源码包的下载地址

HTTpClient httpclient=new HTTPClient();

//创建一个get方法没累死与在浏览器地址栏中输入一个地址

GetMethod getMethod=new GetMethod("http://www.baidu.com");

//回车,获得响应状态码

int statusCode=httpClient.executeMethod(getMethod);

//查看命中的情况,可以获得很东西,比如 head  Cookies等

System.out.println("Response" +getMethod.getResponseBodyASString());

//释放

getMethod.releaseConnection()

另外post和get的不同之处就是get是把参数写在URL中一同提交。

设置代理服务器的IP地址和端口   ////hrrpClient.getHostConfiguration().setProxy("192.178.222.2",2323);

//告诉HTTP使用抢先认证,否则你会收到“你没有资格”

httpClient.getParams().setAuthenticationPreemptive(true)

java爬虫笔记

3、处理HTTP状态码

int statusCode=httpClient.executeMethod(getMethod)//获得状态码   状态码表示HTTP协议反悔的响应状态,比如客户端像服务器发送请求,若果成功返回200 表示成功,如果请求的资源不存在,则返回404错误。

HTTP状态码分为五种类型,分别以1-5开头,有三位数字组成,1XX用作实验用途,

java爬虫笔记

4、assert的意思是,表达式 n!=0应该是True 否则根据程序逻辑后面的代码会出错,若果断言失败,assert语句本身就会跑出AssertionError

java爬虫笔记java爬虫笔记

5、pdb调试程序 以参数 -m pdb 启动后,pdb定位到下一步要执行的代码 输入命令1 来查看代码,输入n 调试到代码的下一行,任何时候都可以输入 变量 p +变量名来查看变量

java爬虫笔记

另外一种调试就是导入 import  pdb 然后设置 程序可能出错的地方放置一个pdb.set_trace()就可以设置一大个断点。可以用命令p 查看变量,或者命令c 继续执行。这个方式比直接挨冻pdb单步调用调试的效率要高

java爬虫笔记

6、单元测试

测试驱动开发 TDD Test-Driven Development 单元测试是用来对一个模块,一个函数或者一个类来进行正确性检验的测试工作,如果单元测试那个通过,说明函数正常,但是不通过,说明函数存在bug ,要么就是测试条件输入不正确,需要修复测试单元测试。

上一篇:Makefile中头文件在依赖关系中作用


下一篇:js无间隙向上滚动