使用jsoup爬虫抓取页面

httpclient 和jsoup都可以实现模拟浏览器抓取页面,前者发送请求,后者解析htm标签比较强大。本例直接使用jsoup实现请求和解析。


package com.chongdong.log.test;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.jsoup.Connection;
import org.jsoup.Connection.Method;
import org.jsoup.Jsoup;
import org.jsoup.helper.HttpConnection.Response;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.junit.Test;
/**
 *
* 类名称:JsoupTest
* 类描述:    jsoup  抓取 mitsuku聊天 信息
* 创建人:zk
* 创建时间:2015-7-20 下午3:52:06
* 修改人:zk
* 修改时间:2015-7-20 下午3:52:06
* 修改备注:
* 开发进度:
* @version  1.0
*
 */
public class JsoupTest {

    public  static  void  postMitSuKu(){
        Map<String, String> map = new HashMap<String, String>();
        /**  表单 提交的参数
         *  input:how old  are  you
            botid:9fa364f2fe345a10
            custid:c04f62ad1e044059
            faq : http://www.pandorabots.com/botmaster/en/faq#h1
         * **/
        map.put("input", "hi");
        map.put("botid", "9fa364f2fe345a10");  //开启 可在 跳转到聊天框界面 获取  标示
        map.put("custid", "c04f62ad1e044059");  //当一个空请求 即可获取 相当于 标示
        Connection conn = Jsoup.connect("http://fiddle.pandorabots.com/pandora/talk-xml");
    /*  conn.header("(Request-Line)", "POST /cgi-bin/login?lang=zh_CN HTTP/1.1");*/
        conn.header("Accept", "*/*");
        conn.header("Accept-Encoding", "gzip,deflate,sdch");
        conn.header("Accept-Language", "zh-CN,zh;q=0.8");
/*      conn.header("Content-Length", "58");*/
        conn.header("Origin", "http://www.square-bear.co.uk");
        conn.header("Pragma", "no-cache");
        conn.header("Connection", "Keep-Alive");
        //必须 填写  表单提交
        conn.header("Content-Type", "application/x-www-form-urlencoded");
        conn.header("Host", "fiddle.pandorabots.com");
        conn.header("Referer", "http://www.square-bear.co.uk/mitsuku/mitsy_retro.swf");
        conn.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36");
        try {
            Response response = (Response) conn.ignoreContentType(true).method(Method.POST).data(map).execute();
            //response.
            String json=response.body();
        System.out.println(json);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /////////////////////////////////////////////////////////////////////////////////////////
    //方案2:    通过 开发抓包工具可知  表单的提交方式  应该为http post  此处为 get  方法 不合适
    /**
         * 请求英文对话的网页,抓取结果
         * @param url
         * @return
         */

        private static String processLogic(String url){
            String result = "";
            try {
                    Document document = Jsoup.connect(url).ignoreContentType(true).ignoreHttpErrors(true)
                    .followRedirects(true).timeout(5000).userAgent("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/4.0;)").get();
                    Elements elements = document.select("result that");
                    result = elements.text();
                    System.out.println(result);
            } catch (Exception e) {
                e.printStackTrace();
                result = "ok";
            }
            return result;
        }
    public static void main(String[] args) {
        for (int i = 0; i < 100; i++) {
        //  Thread  thread=new Thread();
            //thread.start();
            postMitSuKu();
        }

        /*
         通过 开发抓包工具可知  表单的提交方式  应该为http post  此处为 get  方法 不合适
        String url = "http://fiddle.pandorabots.com/pandora/talk-xml?input=%s&botid=9fa364f2fe345a10&custid=bbbb30debe1bc7f7";
        processLogic(url);
        */
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-27 01:22:44

使用jsoup爬虫抓取页面的相关文章

爬虫-抓取页面内容

# -*- coding: UTF-8 -*- from HTMLParser import HTMLParser import sys,urllib2,string,re,json reload(sys) sys.setdefaultencoding('utf-8') class hp(HTMLParser): def __init__(self): self.readingdata_a = False self.title = [] self.usite = [] HTMLParser.__

NodeJs爬虫抓取古代典籍,共计16000个页面心得体会总结及项目分享

项目技术细节 项目大量用到了 ES7 的async 函数, 更直观的反应程序了的流程.为了方便,在对数据遍历的过程中直接使用了著名的async这个库,所以不可避免的还是用到了回调promise ,因为数据的处理发生在回调函数中,不可避免的会遇到一些数据传递的问题,其实也可以直接用ES7的async await 写一个方法来实现相同的功能.这里其实最赞的一个地方是使用了 Class 的 static 方法封装对数据库的操作, static 顾名思义 静态方法 就跟 prototype 一样 ,不会

python 爬虫抓取心得

quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quote('要编码的字符串') query = urllib.quote(singername) url = 'http://music.baidu.com/search?key='+query response = urllib.urlopen(url) text = response.read()

爬虫技术(四)-- 简单爬虫抓取示例(附c#代码)

这是我的第一个爬虫代码...算是一份测试版的代码.大牛大神别喷... 通过给定一个初始的地址startPiont然后对网页进行捕捉,然后通过正则表达式对网址进行匹配. List<string> todo :进行抓取的网址的集合 List<string> visited :已经访问过的网址的集合 下面实现的是,给定一个初始地址,然后进行爬虫,输出正在访问的网址和已经访问的网页的个数. 需要注意的是,下面代码实现的链接匹配页面的内容如图一.图二所示: 图一: 图二: 简单代码示范如下:

【Heritrix源代码分析4】开始一个爬虫抓取的全流程代码分析

在创建一个job后,就要开始job的运行,运行的全流程如下: 1.在界面上启动job 2.index.jsp 查看上述页面对应的源代码 <a href='"+request.getContextPath()+"/console/action.jsp?action=start'>Start</a> 3.action.jsp String sAction = request.getParameter("action"); if(sAction !

php爬虫抓取信息及反爬虫相关

58爬虫了百姓,赶集和58互爬,最后各种信息相同,都是爬虫后的数据库调用,潜规则啊,几家独大还暗中各种攻击,赶驴网的幽默事例我不想多评价.这个时代是砸.钱*养.钱的时代,各种姚晨杨幂葛优,各种地铁公车广告,各种卫视广告,铺天盖地~~~ 来谈php爬虫抓取信息~~ php爬虫首推Curl函数了,先来认识下它. 0x01.curl扩展的安装: 1.确保php子文件夹ext里面有php_curl.dll(一般都有的,一般配置时候会设置环境变量的) 2.将php.ini里面的;extension=php

python 爬虫抓取心得分享

/** author: insun title:python 爬虫抓取心得分享 blog:http://yxmhero1989.blog.163.com/blog/static/112157956201311821444664/ **/    0x1.urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quote('要编码的字符串') query = urllib.quote(singername) url = 'h

【转载】从网站内因分析影响爬虫抓取

一个网站只有爬虫抓取了,才能被收录.有快照.有排名.所以搜索引擎爬虫对网站的抓取情况直接决定了一个网站seo的成败.今天笔者就从网站内部本身来分析一下那些因素将影响到搜索引擎爬虫的爬取: 1.网站速度影响爬虫访问 机房—DNS服务器—CDN—出口带宽--硬件—操作系统—服务器软件—程序 机房的位置:最好选择靠近爬虫的线路 Dns服务器:热门.稳定(推荐dnspod) CDN:在做网站日志分析时候记得算进去 出口带宽:避免与大流量的网站同机房 硬件:在经济允许下使用配置高的 操作系统:推荐linu

如何利用Python网络爬虫抓取微信朋友圈的动态(上)

今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌,小编在网上找到了第三方工具,它可以将朋友圈进行导出,之后便可以像我们正常爬虫网页一样进行抓取信息了. [出书啦]就提供了这样一种服务,支持朋友圈导出,并排版生成微信书.本文的主要参考资料来源于这篇博文:https://www.cnblogs.com/sheng-jie/p/7776495.html