HTML/CSS 谁 Nokogiri 熟悉,如何分析一个网站的 css 路径

davidminaki · 2015年01月05日 · 最后由 huobazi 回复于 2015年01月06日 · 8983 次阅读

比如我向获取这儿页面的活动信息 http://bbs.lvye.cn/thread-1148532-1-1.html 比如说页面里有一下 html 如何利用 Nokogiri 分析出活动信息呢?

<table>
            <tbody><tr>
                <td colspan="2">
                    <dl>
                        <dt>领队名称:</dt>
                        <dd><strong><a href="http://sns.lvye.cn/space-uid-925011.html">葵花朵朵</a><a href="http://sns.lvye.cn/space-uid-925011.html" title="此领队为认证领队"></a></strong>
                        <img src="source/plugin/event/images/beiicon.gif" style="vertical-align: -2px;">

                        <img src="source/plugin/event/images/leader-lvD.jpg" style="vertical-align: -2px;">


                            联系方式:
                            <img src="plugin.php?id=event:imgmobile&amp;leadermobile=13810034091">

                        </dd>
                    </dl>
                </td>
            </tr>

            <tr>
                <td colspan="2">
                    <dl>
                        <dt>活动特色:</dt>
                        <dd>雪乡,雪谷,壶口瀑布,冰瀑 平遥古城</dd>
                    </dl>
                </td>
            </tr>



            <tr>
                <td>
                    <dl>
                        <dt>出发时间:</dt>
                        <dd><strong>2015年01月22日</strong>&nbsp;</dd>
                    </dl>
                </td>
                <td>
                    <dl>
                        <dt>返回时间:</dt>
                        <dd><strong>2015年01月25日</strong></dd>
                    </dl>
                </td>
            </tr>

            <!-- 出发地 begin -->

            <tr>
                <td>
                    <dl>
                        <dt>出 发 地:</dt>
                        <dd>

                            北京,西城区
                            </dd>
                    </dl>
                </td>
                <td>
                    <dl>
                        <dt>目 的 地:</dt>
                        <dd>

                            黑龙江,七台河

                        </dd>
                    </dl>
                </td>
            </tr>

            <!-- 出发地 end -->


            <tr>
                <td colspan="2">
                    <dl>
                        <dt>活动地点:</dt>
                        <dd>雪乡,雪谷,哈尔滨冰灯吗</dd>
                    </dl>
                </td>
            </tr>


            <tr>
                <td colspan="2">
                    <dl>
                        <dt>集合时间:</dt>
                        <dd><span class="emphor em" id="closeTime">2015-01-22 20:30</span></dd>
                    </dl>
                </td>
            </tr>


            <tr>
                <td colspan="2">
                    <dl>
                        <dt>集合地点:</dt>
                        <dd><span class="emphor em"> 地铁复兴门地铁东南D出口,左转10米味多美面包房边上。</span></dd>
                    </dl>
                </td>
            </tr>


            <tr>
                <td colspan="2">
                    <div class="dashline"></div>
                </td>
            </tr>

            <tr>
                <td>
                    <dl>
                        <dt>强度等级:</dt>
                        <dd>
                            <div class="tooltips-left">
                                <a class="fll" href="http://www.lvye.cn/huodong/---/?page=1&amp;order=default&amp;lvl=0&amp;property=all&amp;">休闲</a>

                                <div class="tooltips" alt="为保证活动质量,休闲,1.0级活动每领队带领25个队员,1.0级以上活动每个领队带领20个队员" title="为保证活动质量,休闲,1.0级活动每领队带领25个队员,1.0级以上活动每个领队带领20个队员"></div>
                                </div>
                            </dd>
                    </dl>
                </td>


                <td>
                    <dl>
                        <dt>总 里 程:</dt>
                        <dd><span>8公里</span>
                        </dd>
                    </dl>
                </td>


            </tr>
            <tr>
                <td>
                    <dl>
                        <dt>活动经费:</dt>
                        <dd>200元&nbsp;&nbsp;</dd>
                    </dl>
                </td>
                <td>
                    <dl>
                        <dt>预 付 费:</dt>
                        <dd><span class="emphor em">200.00元</span></dd>
                    </dl>
                </td>
            </tr>
            <tr>


                <td colspan="2">
                    <dl>
                        <dt>包车公示:</dt>
                        <dd>
                            <div class="tooltips-left" title="包车,1234" alt="包车,1234">
                                <div class="fll">
                                    包车,1234

                                </div>
                                <div class="tooltips" alt="活动所用车辆信息" title="活动所用车辆信息"></div>
                            </div>
                        </dd>

                    </dl>
                </td>

            </tr>


            <tr>
                <td>
                    <dl>
                        <dt>需要人数:</dt>
                        <dd>
                            <span>25</span>&nbsp;&nbsp;
                        </dd>
                    </dl>
                </td>
                <td>
                    <dl>
                        <dt>已报人数:</dt>
                        <dd><span>18</span>&nbsp;</dd>
                    </dl>
                </td>
            </tr>
            <tr>
                <td>
                    <dl>
                        <dt>&nbsp;&nbsp;&nbsp;&nbsp;认:</dt>
                        <dd><span>18</span>&nbsp;
                        </dd>
                    </dl>
                </td>
                <td>
                    <dl>
                        <dt>&nbsp;&nbsp;&nbsp;&nbsp;余:</dt>
                        <dd>
                            <span class="em">7</span></dd>
                    </dl>
                </td>
            </tr>

        </tbody></table>
require 'rubygems'
require 'nokogiri'
require 'open-uri'

page = Nokogiri::HTML(open('http://bbs.lvye.cn/thread-1158642-1-1.html'))
puts '------------------活动名称--------------'
title = page.css('title').text
puts title
puts '------------------活动内容--------------'
huodong = page.css('div.spi table tr td dl  dd')

event=Array.new
huodong.each{|hd| 
    hd = hd.text
    hd = hd.gsub(' ','')
    hd = hd.gsub("\n",'')
    event.push(hd)
}

puts event

搞定!

万能的 chrome 开发工具右键拷贝 xpath 或者 css path 就 OK 了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号