您好,登錄后才能下訂單哦!
為了計算文本與標題相似度,需要用到標題文本。而爬數據的時候將文件名設置為url而沒有用網頁標題來存,所以需要解析網頁提取,工程在.net平臺下利用webbrowser實現的,用到了微軟的mshtml。
用IHTMLDocument2.title倒是可以獲得標題,但是它取得的標題有時會包含網站名如: Colorado shooting suspect sent to trial | World news | guardian.co.uk
為了計算準確,希望只有當前主題網頁中的標題就是只有Colorado shooting suspect sent to trial。觀察html發現一般主題網頁的meta信息中會有不包含網站名的title,在格式如下的一個標簽里<meta property="og:title" content="Colorado shooting suspect sent to trial"/>。于是用正則匹配IHTMLElement的outerhtml,嘗試各種正則都沒匹配到。
原來outerhtml中只有body結點中的html,并不包含meta信息。然后google查有什么方法獲得meta中的內容,發現一個解決方法http://forums.asp.net/p/1455331/3332061.aspx。關鍵代碼貼在這里:
- foreach (IHTMLElement el in (IHTMLElementCollection)doc.all)
- {
- // check to see if all the desired attributes were found with the correct values
- bool qualify = true;
- if (el.tagName == "META")
- {
- HTMLMetaElement meta = (HTMLMetaElement)el;
- Response.Write("Content " + meta.content +"<br/>");
- }
利用IHTMLDocument2可以獲得所有標簽信息,包括meta中的。然后再用正則或者字符串匹配在其中找相應的title信息,完成。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。