1. 程式人生 > >JSoup/NSoup對CSS類名稱中含空格的處理

JSoup/NSoup對CSS類名稱中含空格的處理

在爬蟲過程中,經常需要對網頁內容進行資訊提取。

而在這處理過程中,JSoup是經常常用的庫。(Nsoup是Jsoup的.net開發版本)

從JSOUP的官網例子中,可以處理幾乎任何節點資料。

但是在查詢某個類別的CSS名稱過程中,由於名稱存在空格,導致其提取內容問題返回為空。

相信這個問題大家經常遇到,於是在此將過程記錄一下。

如下面一個例子:

<div class="baseinfo-feild abstract">
                    <div class="row clear zh">
                        <div class="pre ">
                            <span>摘要:</span>
                        </div>
                        <div class="text">在考慮咽喉區進路交叉和到發線技術作業安全的前提下,將到發線和咽喉區作為整體進行綜合優化,以到發線運用和咽喉區進路運用均衡為優化目標,基於0-1整數規劃方法構建到發線運用模型,並編制模擬退火求解演算法.以蘭州站為物件進行案例分析,結果表明:到發線和咽喉的運用都達到了均衡並且使佔用同一到發線相鄰兩列列車時間間隔增大,若發生晚點等突發事件便於車站作業調整.所構建模型能夠有效提高車站技術裝置利用均衡性以及車站作業的抗干擾性,為車站作業計劃編制提供優化方法.</div>
                    </div>
            </div>

其中:按照下面進行編寫程式碼:



            Document doc = NSoupClient.Parse(html);
            var abs = abstractS.Select("div.row clear zh");

這樣返回的abs內容為空。即出現空格的情況下,程式中會預設進行截斷,只返回row的CSS類,而這導致不匹配而返回空。

最終檢視程式碼,終於搞定,即要對CSS中的空格進行處"理。即用"."代替空格。

            var abs = abstractS.Select("div.row.clear.zh");

用這種方式,就可以提取到相關的資訊.