日期:2014-05-17  浏览次数:20816 次

请教一下如何使用Java抓取网页上指定部分的内容


例如我要抓取“第****期"中的数字,和下面红色区域的5个数;
网页中的标签显示如下:
 
<div class="class1">
<div>最新开奖:第<span id="id1"></span>期</div>
        <div class="class2" id="id2"></div>
        <p id="id3"></p>
    </div>


各位大神,给一个URL,如何能实现这个功能?
------解决方案--------------------
Element找到这个id的。<span id="id1"></span>,然后取里面的数字。
下面那个估计是图片,可能需要涉及图片识别。

最关键的是,这2个数据不是写死的吧,应该是js动态生成的。那你要去分析js执行的过程
------解决方案--------------------
百度 :解析网页神器 jsoup,如果是js生成就麻烦了。。。
------解决方案--------------------
用selenium吧 很简单
------解决方案--------------------
url 贴出来。不同网页抓取不一样。。
------解决方案--------------------
引用:
Quote: 引用:

百度 :解析网页神器 jsoup,如果是js生成就麻烦了。。。
我上面代码写了,有些地方还不熟悉,你看看应该怎么取到?
贴个url 看看
------解决方案--------------------
查查网络爬虫试试、应该可以根据网络爬虫的原理抓取出来
------解决方案--------------------
	Document doc = Jsoup.connect("http://www.aicai.com/lottery/kc!getOpenPrizeDatafor11x5.jhtml?gameIndex=301").get();
System.out.println(doc.html());

------解决方案--------------------
之前我从人家的网站抓图以及抓价格信息,都是直接用正则获取的,
也避免了解析的麻烦。。
------解决方案--------------------
你那个是js 解析生成的 ,所以你直接抓取是不可以的。 
------解决方案--------------------
数据来源
,loadFirst11X5Data: function(gId) {
            var t = new Date().getTime();
            var url = "/lottery/kc!ssc.jhtml?time=" + t;
            gameIndex = gId;
            var param = {gameIndex: gameIndex};
            $("#jq_kc_buy_stop_time").show();
            $("#jq_kc_stop_market").hide();
            $.get(url, param, function(data) {
                var json = eval("(" + data + ")");
                if (json.stopStatus == '1' 
------解决方案--------------------
 json.stopStatus == '2') {
                    $('#jq_stopSell_button').show();
                } else {
                    $('#jq_openSell_button').show();
          &nbs