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)

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爬虫笔记的更多相关文章
- Java网络爬虫笔记
Java网络爬虫笔记 HttpClient来代替浏览器发起请求. select找到的是元素,也就是elements,你想要获取具体某一个属性的值,还是要用attr("")方法.标签 ...
- java爬虫案例学习
最近几天很无聊,学习了一下java的爬虫,写一些自己在做这个案例的过程中遇到的问题和一些体会1.学习目标 练习爬取京东的数据,图片+价格+标题等等 2.学习过程 1·开发工具 ...
- 爬虫笔记之自如房屋价格图片识别(价格字段css背景图片偏移显示)
一.前言 自如房屋详情页的价格字段用图片显示,特此破解一下以丰富一下爬虫笔记系列博文集. 二.分析 & 实现 先打开一个房屋详情页观察一下: 网页的源代码中没有直接显示价格字段,价格的显示是使 ...
- Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)
在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...
- 半途而废的Java爬虫学习经历
最近在面试,发现Java爬虫对于小数据量数据的爬取的应用还是比较广,抽空周末学习一手,留下学习笔记 Java网络爬虫 简单介绍 爬虫我相信大家都应该知道什么,有什么用,主要的用途就是通过程序自动的去获 ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- webmagic的设计机制及原理-如何开发一个Java爬虫
之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫.最近终于集中精力,花了三天时间,终于写完了这篇文章.之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方 ...
随机推荐
- retrofit动态代理
https://blog.csdn.net/dalong3976/article/details/83479816
- D. Time to go back(思维)
题目链接:http://codeforces.com/gym/100952/problem/D 题目大意:n个礼物,m个人,要给m个人中的k个人买大于等于d的礼物,其他人随意,问你选择礼物的方案数(不 ...
- A Simple Problem with Integers POJ - 3468 (分块)
题目链接:https://cn.vjudge.net/problem/POJ-3468 题目大意:区间加减+区间查询操作. 具体思路:本来是一个线段树裸题,为了学习分块就按照分块的方法做吧. 分块真的 ...
- 20165234 《Java程序设计》第二周学习总结
第二周学习总结 教材学习内容总结 第二章 标识符与关键字 1.标识符 其本质是文件名字. 由字母.下画线.美元符号和数字组成,长度不受限制. 标识符的第一个字符不能为数字,标识符不能为关键字(如int ...
- 20165234 《Java程序设计》第二周课下作业
1. 教材代码完成情况测试P14 把100改为自己的后四位学号,编译运行Kernighan.java 代码的功能是从给定一个数字,实现从1依次加到此数的和. 如下是我用命令行实现代码的编译与运行. 2 ...
- 关于第一个java程序HelloWorld的感慨
今天入手第一个java程序,严格意义上来讲,是真正开始研究java的第一个“Hello World": 1.没有用自动提示,虽然System.out.println()还是自动蹦出来了,但是 ...
- aix装python
网址是:http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html 在AIX下安装python Python是个 ...
- HDU - 1160 FatMouse's Speed 动态规划LIS,路径还原与nlogn优化
HDU - 1160 给一些老鼠的体重和速度 要求对老鼠进行重排列,并找出一个最长的子序列,体重严格递增,速度严格递减 并输出一种方案 原题等于定义一个偏序关系 $(a,b)<(c.d)$ 当且 ...
- FS G729转码测试记录
默认情况下Freeswitch自带的G729模块是pass-through-并不支持转码.我们决定添加一个支持G729转码的模块到Freeswitch.参考自 8000HZ. 一.安装支持转码的G72 ...
- Springboot:开发时工程启动慢
个人的解决办法是删除workspace中的histor 然后重启Eclipse,发现一切正常.