`
cjp1989
  • 浏览: 161306 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Jsoup网页内容抓取分析(1)

阅读更多

     在Java 程序在解析HTML 文档时,大家应该晓得htmlparser 这个开源项目,我也是使用过,不过这个程序到了2006年就没有更新了。由于我的基础较差,对于扩展自定义的标签还是不太懂,还是有超时问题困扰,偶然的机会中发现有jsoup,而且更新到了1.72版,使用起来还是很容易上手的。下面写些使用心得:

        jsoup is a Java library for working with real-world HTML. It provides a very convenient API for extracting and manipulating data, using the best of DOM, CSS, and jquery-like methods.

       jsuop是一款java的html解析器,提供一套非常省力的API,通过dom模型css和类似于jquery的方式来获取和操作数据。

      功能:1.解析一个Html文档,2.解析一个body片段

       

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);//分析文档,使用doc.toString()可以转为文本
Element body=doc.body();//获取body片段,使用body.toString()可以转为文本

     

      获取方式:1.从本地文件加载   2.根据url地址获取

 

     

/**使用静态 Jsoup.parse(File in, String charsetName, String baseUri) 方法
 *其中baseUri参数用于解决文件中URLs是相对路径的问题。
 *如果不需要可以传入一个空的字符串。
 */
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

  

/**
 *根据url直接获取内容,可以加入超时,get方法不行,就用post方法
 *我在实际应用中,出现404,405,504等错误信息
 *将get改为post就可以,或者反过来改
 *如果等以后弄明白了,再来解释清楚
 */
Document doc1 = Jsoup.connect("http://www.hao123.com/").get();
String title = doc1.title(); //获取网页的标题
String content=doc1.toString();//将网页转为文本

Document doc2 = Jsoup.connect("http://www.hao123.com")
  .data("query", "Java")//请求参数
  .userAgent("Mozilla")//设置urer-agent
  .cookie("auth", "token")//设置cookie
  .timeout(50000)//设置连接超时
  .post();//或者改为get

 

 

 

 

16
5
分享到:
评论
17 楼 fwjuinsun 2013-12-20  
mz0827 写道
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。


我开发的这个功能已经大范围在使用了。主要也是基于配置,配置的对象包括:
1.网站
  提供要采集的网站的信息
2.栏目
  采集某一栏目的内容,比如新浪的新闻
3.页面
  列表页面、数据页面,有的有跳转页面
4.字段
  挂在页面上。就是要从一个页面上获取哪些信息,每一个信息就是一个字段

我现在也对这块有兴趣,但问题是我需要抓取的内容是分页,有没有什么好主意才能把分页的内容全都抓到呢?还有就是对于一些在网址上不带参的,如果去抓取结果页面呢?
16 楼 cjp1989 2013-02-26  
mz0827 写道
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。


我开发的这个功能已经大范围在使用了。主要也是基于配置,配置的对象包括:
1.网站
  提供要采集的网站的信息
2.栏目
  采集某一栏目的内容,比如新浪的新闻
3.页面
  列表页面、数据页面,有的有跳转页面
4.字段
  挂在页面上。就是要从一个页面上获取哪些信息,每一个信息就是一个字段

不错的思路!
15 楼 mz0827 2013-02-26  
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。


我开发的这个功能已经大范围在使用了。主要也是基于配置,配置的对象包括:
1.网站
  提供要采集的网站的信息
2.栏目
  采集某一栏目的内容,比如新浪的新闻
3.页面
  列表页面、数据页面,有的有跳转页面
4.字段
  挂在页面上。就是要从一个页面上获取哪些信息,每一个信息就是一个字段
14 楼 cjp1989 2013-02-21  
superchinaren 写道
cjp1989 写道
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。

这个我正在做通用配置,有很多的参数要设置,根据div,table不同,从数据库里读取配置信息。大部分的网站是可以统一处理的额


做出来后。欢迎也写写BLOG 学习一下。个人目前对这块比较感兴趣

目前已经在测试,性能还是很好的,通用配置只能针对大部分的网站,要费些时间才能做出来,而且可能不完善...因为有些网页结构真的很蛋疼
13 楼 superchinaren 2013-02-21  
cjp1989 写道
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。

这个我正在做通用配置,有很多的参数要设置,根据div,table不同,从数据库里读取配置信息。大部分的网站是可以统一处理的额


做出来后。欢迎也写写BLOG 学习一下。个人目前对这块比较感兴趣
12 楼 cjp1989 2013-02-20  
linweibin 写道
用jsoup大部分的网站都是可以做同意处理的,特别是像新闻类的网站或者微博

我现在就是做的新闻类网站的内容截取,分析
11 楼 linweibin 2013-02-20  
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。

用jsoup大部分的网站都是可以做同意处理的,特别是像新闻类的网站或者微博
10 楼 cjp1989 2013-02-19  
superchinaren 写道
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。

这个我正在做通用配置,有很多的参数要设置,根据div,table不同,从数据库里读取配置信息。大部分的网站是可以统一处理的额
9 楼 superchinaren 2013-02-19  
问一个问题。如何我要爬不同的网站上的内容。是不是要针对不同的网站写不同的解析代码?有没有统一处理的。
8 楼 cjp1989 2013-02-19  
linweibin 写道
mz0827 写道
我觉得jsoup还是只用来解析html比较好。获取html可以使用Apache的HttpClient,3或者4都可以

这两个一般都是结合使用的

赞同,谢谢指教,现在在做通用配置,还有好多要解决的问题!
7 楼 linweibin 2013-02-19  
mz0827 写道
我觉得jsoup还是只用来解析html比较好。获取html可以使用Apache的HttpClient,3或者4都可以

这两个一般都是结合使用的
6 楼 cjp1989 2013-02-19  
sanshizi 写道
这个库不错

确实是很好的!
5 楼 sanshizi 2013-02-19  
这个库不错
4 楼 cjp1989 2013-02-19  
asialee 写道
jsoup的api定义的非常好

完全赞同,我也是觉得这个好用!
3 楼 cjp1989 2013-02-19  
mz0827 写道
我觉得jsoup还是只用来解析html比较好。获取html可以使用Apache的HttpClient,3或者4都可以

谢谢,我一定试下。
我用java自带的httpURLConnection获取链接,发现耗时比较大,而且还有的无法加载出来,自己写了个demo比较耗时,发现jsoup综合还是快于HttpURLConnection。
2 楼 asialee 2013-02-19  
jsoup的api定义的非常好
1 楼 mz0827 2013-02-19  
我觉得jsoup还是只用来解析html比较好。获取html可以使用Apache的HttpClient,3或者4都可以

相关推荐

    jsoup1.10_jsoupjar包网页_

    网页爬虫jsoup的jar包,可以帮组下载网页,方便网页爬虫爱好者抓取分析网页。

    超级课程表 课程格子 教务系统抓取 SQLite Android Studio HttpWatch Jsoup解析网页.zip

    软件开发设计:PHP、QT、...云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。

    基于Jsoup的 Android 网络爬虫,抓取海投网上的高校宣讲会信息。.zip

    其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...

    基于Java实现网络爬虫(蜘蛛)

    网页抓取: 爬虫程序根据指定的URL,访问网页并下载页面内容。 信息解析: 使用Jsoup等HTML解析库解析网页内容,提取信息需要的信息,如标题、内容、链接等。 数据存储: 可以将解析后的数据存储到数据库或文件中,...

    java项目源码之网络爬虫(蜘蛛)的实现.rar

    网页抓取:爬虫首先通过网络请求获取网页内容。它们可以模拟浏览器行为发送 HTTP 请求,或者直接与服务器通信获取网页数据。 解析网页:获取到网页内容后,爬虫需要解析 HTML 或其他标记语言,提取出有用的信息,如...

    使用Java爬虫Jsoup写的爬取各大小说网站内容。支持多网站小说来源,程序猿划水利器。.zip

    其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...

    Java网络蜘蛛(爬c)源码.zip

    Java的网络爬虫是一种用于从互联网上获取信息的程序,通常用于抓取网页内容、收集数据或执行其他自动化任务。网络爬虫是搜索引擎、数据挖掘和信息收集等领域的重要工具。 Java的网络爬虫通常基于Java的网络编程库,...

    搜索链接Java网络爬虫(蜘蛛)源码-zhizhu

    网页抓取:使用Java的网络编程库(如HttpURLConnection、Apache HttpClient等)来发送HTTP请求,获取网页的HTML内容。 网页解析:利用Java的HTML解析库(如Jsoup、HtmlCleaner等)来解析网页的HTML结构,提取出所需...

    Java爬虫:实现信息抓取的完整实例源码

    2. **解析网页**:获取响应的HTML内容,并使用解析库(如Jsoup)提取所需的数据。 3. **提取数据**:编写逻辑代码,从解析后的HTML中提取目标信息。 4. **存储数据**:将提取的数据保存到文件、数据库或其他存储...

    通过Jsoup的Android爬虫爬取音乐的app.zip

    其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...

    最简单的爬虫-WebMagic 0.73 源码

    作为爬虫框架,它使用httpclient作为获取网页工具、使用Jsoup作为分析页面定位抓取内容、使用ExecutorService线程池作为定时增量抓取、Jdiy作为持久层框架。不熟悉这些名词的同学们可以先行百度一下这些都是什么,起...

    Android 本地网络小说爬虫,基于jsoup及xpath.zip

    其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...

    Java爬虫入门——使用Jsoup解析HTML页面.zip

    其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...

    java爬虫 jsoup,模拟登陆csdn、github.zip

    其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...

    Java利用HtmlUtil和jsoup爬取知网中国专利数据的爬虫程序.zip

    其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...

    Java毕业设计-[搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu.rar

    2. **网页抓取**:通过HTTP/HTTPS协议获取网页源代码,支持自定义User-Agent、代理IP等设置。 3. **数据解析**:利用正则表达式或HTML解析库(如Jsoup)从网页中提取所需数据。 4. **存储处理**:支持将抓取到的数据...

    网络爬虫技术Jsoup的使用,来获取大众点评 健身场馆的有关数据.zip

    其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始...

    毕业设计Java网络爬虫(蜘蛛)源码

    该项目利用Java的强大网络编程能力,结合多线程和网络协议理解,使得用户可以轻松地收集网页内容、分析数据并存储于本地数据库或文件系统中。对于大学生而言,这个项目不仅是一个实用的技术学习资源,也是毕业设计的...

Global site tag (gtag.js) - Google Analytics