一、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)

3、处理HTTP状态码

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

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

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

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

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

6、单元测试

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

java爬虫笔记的更多相关文章

  1. Java网络爬虫笔记

    Java网络爬虫笔记 HttpClient来代替浏览器发起请求. select找到的是元素,也就是elements,你想要获取具体某一个属性的值,还是要用attr("")方法.标签 ...

  2. java爬虫案例学习

    最近几天很无聊,学习了一下java的爬虫,写一些自己在做这个案例的过程中遇到的问题和一些体会1.学习目标         练习爬取京东的数据,图片+价格+标题等等 2.学习过程 1·开发工具      ...

  3. 爬虫笔记之自如房屋价格图片识别(价格字段css背景图片偏移显示)

    一.前言 自如房屋详情页的价格字段用图片显示,特此破解一下以丰富一下爬虫笔记系列博文集. 二.分析 & 实现 先打开一个房屋详情页观察一下: 网页的源代码中没有直接显示价格字段,价格的显示是使 ...

  4. Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)

    在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...

  5. 半途而废的Java爬虫学习经历

    最近在面试,发现Java爬虫对于小数据量数据的爬取的应用还是比较广,抽空周末学习一手,留下学习笔记 Java网络爬虫 简单介绍 爬虫我相信大家都应该知道什么,有什么用,主要的用途就是通过程序自动的去获 ...

  6. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  7. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  8. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  9. webmagic的设计机制及原理-如何开发一个Java爬虫

    之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫.最近终于集中精力,花了三天时间,终于写完了这篇文章.之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方 ...

随机推荐

  1. CF1139B Chocolates

    题目地址:CF1139B Chocolates 前一个必须要少于后一个,那么模拟+贪心即可 倒序模拟,每次在上次取的个数减一和这次可以取的最多数量之间取min 直到为0(注意不要减到负数) 再就是注意 ...

  2. CF1099F Cookies

    题目地址:CF1099F Cookies 树形dp套树形数据结构 对每个节点 \(i\) ,分两步进行: 1.令 \(f_i\) 为Mitya在节点 \(i\) 停止游戏最多可以吃到多少块饼干 我们可 ...

  3. git-bisect last updated in 2.19.1【转】

    转自:https://git-scm.com/docs/git-bisect NAME git-bisect - Use binary search to find the commit that i ...

  4. linux 用户空间获得纳秒级时间ns【转】

    转自:https://www.cnblogs.com/kekukele/p/3662816.html 一.引言 我们在测试程序的性能的时候往往需要获得ns级的精确时间去衡量一个程序的性能,下面介绍下l ...

  5. BIM开发引挈

    BIM开发引挈: 0.three.js    https://threejs.org/ 1. 陕西葛兰岱尔网络科技有限公司       www.glendale.com.cn 基于WebGL BIM轻 ...

  6. Python os.walk文件遍历用法【转】

    python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入 要使用os.walk,首先要载入该函数 可以使用以下两种方法 import os ...

  7. 后台拼接json字符串,传到前台时注意特殊符号处理

    1.后台拼接常用的形式:     sb.AppendFormat("\"字段名\":\"{0}\"", i + 1); 这个要注意字符串截断 ...

  8. windows下java环境变量的配置 javac不是内部或外部命令的问题

    安装配置JAVA JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html . 下载你电脑对应的JDK,下 ...

  9. web页面加载、解析、渲染过程

    仅做学习参考,侵权删 原文链接:风吹De麦浪   https://www.cnblogs.com/CandyManPing/p/6635008.html 一.浏览器 浏览器的主要功能是将用户选择的we ...

  10. TCP与UDP区别小结

    TCP(Transmission Control Protocol):传输控制协议 UDP(User Datagram Protocol):用户数据报协议       主要从连接性(Connectiv ...