crawler4j抓取页面使用jsoup解析html时的解决方法_java

crawler4j对已有编码的页面抓取效果不错,用jsoup解析,很多会jquery的程序员都可以操作。但是,crawler4j对response没有指定编码的页面,解析成乱码,很让人烦恼。在找了苦闷之中,无意间发现一年代已久的博文,可以解决问题,修改 Page.load() 中的 contentData 编码即可,这让我心中顿时舒坦了很多,接下来的问题都引刃而解了。

复制代码 代码如下:

public void load(HttpEntity entity) throws Exception {
 contentType = null; 
    Header type = entity.getContentType(); 
    if (type != null) { 
        contentType = type.getValue(); 
    } 

    contentEncoding = null; 
    Header encoding = entity.getContentEncoding(); 
    if (encoding != null) { 
        contentEncoding = encoding.getValue(); 
    } 

    Charset charset = ContentType.getOrDefault(entity).getCharset(); 
    if (charset != null) { 
        contentCharset = charset.displayName();  
    }else{
     contentCharset = "utf-8";
    }

   //源码
   //contentData = EntityUtils.toByteArray(entity); 
    //修改后的代码
    contentData = EntityUtils.toString(entity, Charset.forName("gbk")).getBytes();

}

时间: 2024-11-16 09:23:38

crawler4j抓取页面使用jsoup解析html时的解决方法_java的相关文章

php抓取页面与代码解析 推荐_php技巧

得到数据我们不能直接输出,往往需要对内容进行提取,然后再进行格式化,以更加友好的方式显现出来.下面先简单说一下本文的主要内容: 一. PHP抓取页面的主要方法: 1. file()函数 2. file_get_contents()函数 3. fopen()->fread()->fclose()模式 4.curl方式 5. fsockopen()函数 socket模式 6. 使用插件(如:http://sourceforge.net/projects/snoopy/) 二.PHP解析html或x

java使用Jsoup连接网站超时的解决方法_java

今天做了一个Jsoup解析网站的项目,使用Jsoup.connect(url).get()连接某网站时偶尔会出现java.net.SocketTimeoutException:Read timed out异常.原因是默认的Socket的延时比较短,而有些网站的响应速度比较慢,所以会发生超时的情况. 解决方法: 链接的时候设定超时时间即可.doc = Jsoup.connect(url).timeout(5000).get();5000表示延时时间设置为5s. 测试代码如下:1,不设定timeou

Jsoup 抓取页面的数据实例详解

Jsoup 抓取页面的数据 需要使用的是jsoup-1.7.3.jar包   如果需要看文档我下载请借一步到官网:http://jsoup.org/ 这里贴一下我用到的 Java工程的测试代码 package com.javen.Jsoup; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.

php抓取页面的几种方法详解_php技巧

在 做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址, 然后得到html源代码或者xml数据,得到数据我们不能直接输出,往往需要对内容进行提取,然后再进行格式化,以更加友好的方式显现出来.下面简单说一下php抓取页面的几种方法及原理:一. PHP抓取页面的主要方法:1. file()函数    2. file_get_contents()函数  3. fopen()->fread()->fclose()模式 

asp抓取页面的代码

 <%    if trim(request.form("url"))<>"" then    dim VBody:VBody=GetResStr(trim(request.form("url")))    dim Res:Res=VBody    dim code:code=GetCode(VBody,"charset= {0,}([^ ]+) {0,}""")    end if   

asp抓取页面

<%    if trim(request.form("url"))<>"" then    dim VBody:VBody=GetResStr(trim(request.form("url")))    dim Res:Res=VBody    dim code:code=GetCode(VBody,"charset= {0,}([^ ]+) {0,}""")    end if   

Python实现抓取页面上链接的简单爬虫分享_python

除了C/C++以外,我也接触过不少流行的语言,PHP.java.javascript.python,其中python可以说是操作起来最方便,缺点最少的语言了. 前几天想写爬虫,后来跟朋友商量了一下,决定过几天再一起写.爬虫里重要的一部分是抓取页面中的链接,我在这里简单的实现一下. 首先我们需要用到一个开源的模块,requests.这不是python自带的模块,需要从网上下载.解压与安装: 复制代码 代码如下: $ curl -OL https://github.com/kennethreitz/

heritrix实现抓取页面中apk的地址

问题描述 heritrix实现抓取页面中apk的地址 我想用heritrix抓取360助手页面的所有apk的地址,这个能实现吗,如果要是改源码的话需要改哪里 解决方案 自己顶一下,各位大神,欢迎浏览 解决方案二: 自己顶一下,各位大神,欢迎浏览 解决方案三: 查一下heritrix怎样搭建和使用,改的地方应该不多.

nutch-如何实现从购书网址抓取页面、再获取里面的图书信息,实现这个功能有什么比较好用的工具或者软件吗?

问题描述 如何实现从购书网址抓取页面.再获取里面的图书信息,实现这个功能有什么比较好用的工具或者软件吗? 我期望能实现一个互联网信息收集的功能,如从购书网址抓取页面.再获取里面的图书信息,实现这个功能有什么比较好用的工具或者软件吗? 解决方案 //try python //import scrapy module //http://scrapy.org //import re module //good luck 解决方案二: 任何一种编程语言都很好用.当然你什么都不会,可以用诸如按键助手.火车