Java爬虫入门之Jsoup使用
来源:互联网 发布:免费网站源码 编辑:程序博客网 时间:2024/05/22 05:06
刚刚开始学习爬虫,因为本人是一枚初级Java工程师,平时基本上都是使用Java的,所以选择了用Java语言进行爬虫的入门语言,至于现在很热门的Python语言暂时还不熟悉,这个以后再去了解。
概述
Jsoup是Java中用于解释Html语言的API。用户可以用它来解析文本html代码,也可以直接解析url地址。把html代码加载到内存,能按需要提取所有或特定的标签或内容。Jsoup还提供select()方法,可以使用户能像使用Jquery一样获得想要内容。总之,Jsoup使用方法简单易用,直接下载Jsoup的jar包就能用了,适合新入门的Java爬虫新手。官方地址:https://jsoup.org
第一步:解析Html
方法一,使用Jsoup的parse方法,获得html。注:parse有很多重载方法,如parse(String html)直接传入一段html,parse(File file,String charsetName,String baseUrl)从文件中加载等,其他的可以查看API。
Document doc = Jsoup.parse(new File(C:/1.html),"UTF-8",String baseUrl); //参数1:文件路径,参数3:路径url(当你以后得到相对路径时使用,如attr("abs:href"))、attr("abs:img"))能拼接得完整路径。
方法二,使用Jsoup的connent(url)方法,通过url获得html。connect会返回一个Connection对象,这时还没发出连接请求,用户可以设置各种浏览器请求头参数(伪装成浏览器),最后通过它的get()或post()方法发出对应的get/post请求。
Document doc = Jsoup.connect(this.url) .userAgent("User-Agent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)") .cookie("auth", "token").timeout(5000).get();
第二步:获得所需的标签
Document提供很多方法供用户获取特定的内容。title(),body() 这些我就不解释了,顾名思义吧。还能通过id,className,标签名,属性名等获得特定的标签。
//获得所有DomList<Element> elements = doc.getAllElements();//获得所有a标签List<Element> elements = doc.getElementsByTag("a");//获得所有属性名为"Hello"的domList<Element> elements = doc.getElementsByAttribute("Hello");//方法不一一举例,自己到Eclipse测试一下。
Document还提供select()方法,让用户能使用类似与JQuery获得Dom的语法去获得标签。详情看看这个网站(http://www.open-open.com/jsoup/selector-syntax.htm)。
另外,Document是继承于Element的。具体的我没有去了解,以后有机会再去深入研究。
Element的getElementByXXX()返回的仍然是Element,不难理解,Element就是html语言的一个Dom,然后Dom里面又嵌套Dom,里面又嵌套…
第三步,获得标签的内容
假定已经通过上述的方式获得了所需要的Element(Dom),那么就可以进一步得到它的属性或它所包含的内容.
举例:
<a href="/hello/gg" rel="nofollow" target="_blank">百度一下</a> element.attr("href"); //输出/hello/gg element.attr("abs:href") // “xxx网址"+"/hello/gg"(完整路径) element.attributes(); //所有属性key和value element.text(); // 百度一下 element.className(); //可以获取值同样的也可以设置值 element.attr("href","设置值"); //还有很多方法不一一解释了。
通过上述方法,可以完成一些基本爬虫任务,如爬网站文本内容、爬图片。但是只能够爬http协议的,原因是https有证书校验。本人也只是新手,日后再研究。
如果文章有一些错误,希望能告知,本人会尽快改正。
- Java爬虫入门之Jsoup使用
- Java爬虫之Jsoup
- 爬虫之jsoup入门指南
- JAVA爬虫初识之httpclient与jsoup
- JAVA爬虫初识之httpclient与jsoup
- java爬虫入门--用jsoup爬取汽车之家的新闻
- Jsoup之网络爬虫
- Android爬虫之Jsoup
- Jsoup爬虫使用记录
- java jsoup 网络爬虫
- java爬虫:JSOUP
- java爬虫(使用jsoup设置代理,抓取网页内容)
- java爬虫使用jsoup.jar包-自定义webUrl编码方式
- 使用jsoup爬虫抓取页面
- 使用jsoup的爬虫例子
- 使用JSOUP实现网络爬虫
- Jsoup使用代理ip爬虫
- 使用jsoup爬虫抓取页面
- 制作本地源
- 虚拟机中安装虚拟机安装系统
- CEdit 控件 更新内容的 方法(可以自动滚动至末尾)
- 四、接管SpringBoot对Activiti的数据源自动配置
- 用图片替换文本
- Java爬虫入门之Jsoup使用
- Html id 选择器
- 第九课记录 HDFS的高级特性
- 字符串左移或右移,java实现
- Android 融云SDK-即时通讯IM(附源码)
- 【python PDF合并】python 合并同一个文件夹下所有PDF文件
- DES加密与解密(c语言版)
- Android自定义View系列(二)——打造一个仿2K游戏摇杆
- iOS开发 PHAsset获取照片名称