就是想通過關鍵詞查找網頁中的指定內容的網址,當然,這個關鍵詞在網頁中出現不止一次,可以從頭到尾回圈查找。網址也不是固定的。
我理解網頁獲取不是難點,idhttp可以get,主要是字串處理吧。先謝謝各位了!
關鍵詞:指定內容 網址提取 回圈 效率
uj5u.com熱心網友回復:
很有意思的話題。網頁決議應該能搜到一些原始碼,沒細究過。有些是為了做爬蟲,功能很寬泛,也許超出了你的需求。我想,需要區分是找鏈接網址還是把文本中的網址都找出來。如果是前者,還是需要按 HTML 規范去決議標簽,有點像做爬蟲了。如果是后者,那就是去搜字串。但是不明確你說的“指定內容”是什么含義。如果就是一個關鍵詞,那問題就歸結到找到關鍵詞后如何確定它是否網址的一部分,以及如何確定網址的前后邊界。這樣,問題又歸結到如何確定標志性字串,也許需要做一點語法分析。
uj5u.com熱心網友回復:
不是做爬蟲,不需要找到全部的連接地址。就如同你說的,“指定內容”就是“關鍵詞”。繼續求解!
uj5u.com熱心網友回復:
我理解你的意思是比如 <a href="http://www.baidu.com">百度一下,你就知道</a><a href="http://www.g.cn">谷歌中國</a>,你搜索字串 百度,那么結果就能匹配到 http://www.baidu.com 這個網址。這樣的話,你就可以先把當前頁面的所有鏈接的 href 和 text 給截取出來->陣列,然后回圈查找text中是否存在你需要的關鍵詞,然后得到一個新的陣列。或者在截取的時候進行判斷也可以。另外還可以用dom的方式進行回圈判斷
uj5u.com熱心網友回復:
不會更新彩票資料吧 呵呵uj5u.com熱心網友回復:
感徑訓是遍歷 DOM 樹比較靠譜。是否還要找文本中嵌入的網址?不妨先把此問題擱置一下,就去遍歷 DOM 樹中的結點。凡有可能帶網址的結點都要分析其屬性,像樓上說的 href 屬性,還有 src 屬性等等,只要取出屬性值,它就是網址,然后看其中是否帶指定關鍵詞。遍歷 DOM 結點,采用遞回演算法比較簡單:寫一個遞回函式,從根結點出發找子結點,找到子結點后,呼叫函式自身再去找子結點的子結點。這樣,一個遞回函式就能完成遍歷。
uj5u.com熱心網友回復:
我自己用回圈的方式可以初步完成需要的功能,但是感覺這種效率比較低,而且在網頁較多、關鍵字較多的情況下,效率更重要。再有就是不同的網頁不能保證提取效果。none01和jinghai1776說的dom樹遍歷我沒有接觸過。哪位大能可以給個學習的例子。謝謝!
uj5u.com熱心網友回復:
我現在查的資料有以下的幾種方式可以提取網頁中的鏈接文本和鏈接地址。1、字串操作
2、正則運算式
3、通過mshtml實作html決議
4、dom樹(還沒有接觸過)
哪位達人對以上某種方法有研究,請指教!
uj5u.com熱心網友回復:
如果對正則比較熟悉自然用 idhttp 好。若不然直接用webbrowser打開歷遍所有鏈接的innertext是否包含有指定關鍵字。doc:=webbroser.oleobject.document.links;
for i=0 to doc.count-1 do begin
if pos('關鍵字',doc.item(i).innertext)>0 then
memo1.lines.add(doc.item(i).innertext+':'+doc.item(i).href);
end;
uj5u.com熱心網友回復:
謝謝devhp,你的代碼正在學習中。我這幾天在看正則,我用正則只能提取到href,但是提不出來鏈接文本。哪位有空幫忙看看怎么用正則同時提取出鏈接地址和鏈接文本。
uj5u.com熱心網友回復:
看了你的帖子,跟我的情況一樣啊,我也是在做HTML頁面的資料抓取。如果是小范圍的資料,用正則運算式足以。
但是對于抓取的資料量比較大,就是抓取的條目較多的情況下,效率就成了需要必須保證的問題。
不知道你的問題解決了沒有,有沒有相關的資料或者經驗傳授一下,謝謝。
uj5u.com熱心網友回復:
武稀松有個開放源代碼的html決議,很好用。
uj5u.com熱心網友回復:
使用IDHTTP就可以。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/124552.html
標籤:語言基礎/算法/系統設計
上一篇:支付寶加密方式
