Javascript 无法通过jsoup从html中提取所需的元素

Javascript 无法通过jsoup从html中提取所需的元素,javascript,html,jsoup,Javascript,Html,Jsoup,页面在这里 资料来源: 查看来源: 我不想放截图,因为它真的很长。我得放很多截图 我想要这个 title: 'ss Event', start: new Date(y, m, 1) 不是全部,只是在标题和日期之后 但它似乎没有类或其他头,因为它在javascript类中: </div> </div> </div> </div> </div> </div> <script> $

页面在这里

资料来源: 查看来源:

我不想放截图,因为它真的很长。我得放很多截图

我想要这个

title: 'ss Event',
start: new Date(y, m, 1)
不是全部,只是在标题和日期之后

但它似乎没有类或其他头,因为它在javascript类中:

 </div>
    </div>
</div>


</div>    </div>
</div>    <script>
    $(document).ready(function() {

        var date = new Date();
        var d = date.getDate();
        var m = date.getMonth();
        var y = date.getFullYear();

    $('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        editable: false,
        events: [
                    {
                title: 'birthday party',
                start: new Date(2015, 9, 26),
                                    end: new Date(2015, 10, 13),
                                    url: 'http://www.yildiz.edu.tr/etkinlikler/Uygarlıkların Geçiş Yolu  &  Anadolu Peyzajı/237'

            },


{
                title: 'Concert',
                start: new Date(2015, 5, 12),
                                    end: new Date(2015, 5, 19),
                                    url: 'http://www.yildiz.edu.tr/etkinlikler/İki Seçki İki Salon İki Sergi/233'

            },

                        ]
    });

});

</script>

    <style type='text/css'>
        #calendar {
            width: 900px;
            margin: 0 auto;
            }

</style>

但它不起作用。我应该使用其他工具吗?

您需要使用其他工具。Jsoup不允许您使用Javascript,只允许使用HTML解析树

最多可以使用document.select(“脚本”).get(1).toString()获取整个脚本文本


一旦获得脚本文本,您可以考虑其他选项,如ReGEX,或者一些JavaScript解析工具,它可以满足您的需要。

< P>您需要使用其他的工具。Jsoup不允许您使用Javascript,只允许使用HTML解析树

Document doc = Jsoup.connect("http://www.yildiz.edu.tr/etkinlikler/").get();
String script = doc.select("script").get(10).toString();
String pattern = "\\{\\s*title\\s*:\\s*(.*),\\s*start\\s*:\\s*(.*),\\s*end.*";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(script);
while (m.find()) {
    System.out.println(m.group(1) + " -> " + m.group(2));
}
最多可以使用document.select(“脚本”).get(1).toString()获取整个脚本文本

一旦获得脚本文本,您可以考虑其他选项,如ReGEX,或者一些JavaScript解析工具,它可以满足您的需要。

Document doc = Jsoup.connect("http://www.yildiz.edu.tr/etkinlikler/").get();
String script = doc.select("script").get(10).toString();
String pattern = "\\{\\s*title\\s*:\\s*(.*),\\s*start\\s*:\\s*(.*),\\s*end.*";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(script);
while (m.find()) {
    System.out.println(m.group(1) + " -> " + m.group(2));
}
输出:

'Long Event' -> new Date(y, m, d-5)
'Lunch' -> new Date(y, m, d, 12, 0)
'Birthday Party' -> new Date(y, m, d+1, 19, 0)
'Kemal Gök Fotoğraf Sergisi :Kentleşme Sürecinde Çocuk İşçiler' -> new Date(2015, 10, 17)
'Uygarlıkların Geçiş Yolu  &  Anadolu Peyzajı' -> new Date(2015, 9, 26)
'Vizöre Çarpanlar' -> new Date(2015, 8, 9)
'İki Seçki İki Salon İki Sergi' -> new Date(2015, 5, 12)
输出:

'Long Event' -> new Date(y, m, d-5)
'Lunch' -> new Date(y, m, d, 12, 0)
'Birthday Party' -> new Date(y, m, d+1, 19, 0)
'Kemal Gök Fotoğraf Sergisi :Kentleşme Sürecinde Çocuk İşçiler' -> new Date(2015, 10, 17)
'Uygarlıkların Geçiş Yolu  &  Anadolu Peyzajı' -> new Date(2015, 9, 26)
'Vizöre Çarpanlar' -> new Date(2015, 8, 9)
'İki Seçki İki Salon İki Sergi' -> new Date(2015, 5, 12)

注释这部分代码是否有原因?是的,用于显示过去的事件。我又编辑了一次,我不会把事件放在评论里。似乎事件标题“ss事件”被评论了。这是故意的吗?将返回HTML元素,而不是javascript哈希成员。该页面上没有包含
id='events'
的元素。我更改了代码。它还显示了过去的EVNT,注释行在最新事件开始后结束。“临近日期”事件不在注释中。注释这部分代码的原因是什么?是,用于显示过去的事件。我又编辑了一次,我不会把事件放在评论里。似乎事件标题“ss事件”被评论了。这是故意的吗?将返回HTML元素,而不是javascript哈希成员。该页面上没有包含
id='events'
的元素。我更改了代码。它还显示了过去的EVNT,注释行在最新事件开始后结束。临近日期事件不在注释中。是的,就是这样:)有没有办法获取注释行之后的事件日期?您可以按字符串删除注释字符。使用regex后替换是的:)有没有办法获取注释行之后的事件日期?您可以按字符串删除注释字符。使用regex后替换